我们要学习springBoot之前,需要了解什么是spring?

一、spring简介

  1. Spring是一个开源框架,它由Rod Johnson创建,是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的轻量级代替品,它是为了解决企业应用开发的复杂性而创建的。
  2. Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
    目的:解决企业应用开发的复杂性。
    功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能。
    范围:任何Java应用。
  3. Spring的核心是:控制反转(IoC)面向切面编程(AOP)。什么是IOC、AOP这里就不做详细说明了,感兴趣的朋友可以自行去查找;
  4. Spring提供对持久层(Persistence)、事物(Transcation)的支持。
  5. Spring供MVC Web框架的实现,并对一些常用的企业服务API(Application Interface)提供一致的模型封装。
  6. Spring提供了对现存的各种框架(Structs、JSF、Hibernate、Ibatis、Webwork等)相整合的方案。
    总之,Spring是一个全方位的应用程序框架。

二、spring的优缺点

优点

  1. 使用Spring的IOC容器,将对象之间的依赖关系交给Spring,降低组件之间的耦合性,让我们更专注于应用逻辑
  2. 可以提供众多服务,事务管理,WS等。
  3. AOP的很好支持,方便面向切面编程。
  4. 对主流的框架提供了很好的集成支持,如Hibernate,Struts2,JPA等
  5. Spring DI机制降低了业务对象替换的复杂性。
  6. Spring属于低侵入,代码污染极低。
  7. Spring的高度可开放性,并不强制依赖于Spring,开发者可以自由选择Spring部分或全部

缺点

虽然Spring的组件代码是轻量级的,但它的配置却是重量级的。一开始,Spring用XML配置,而且是很多XML配置。Spring 2.5引入了基于注解的组件扫描,这消除了大量针对应用程序自身组件的显式XML配置。Spring 3.0引入了基于Java的配置,这是一种类型安全的可重构配置方式,可以代替XML。

所有这些配置都代表了开发时的损耗。因为在思考Spring特性配置和解决业务问题之间需要进行思维切换,所以编写配置挤占了编写应用程序逻辑的时间。和所有框架一样,Spring实用,但与此同时它要求的回报也不少。

除此之外,项目的依赖管理也是一件耗时耗力的事情。在环境搭建时,需要分析要导入哪些库的坐标,而且还需要分析导入与之有依赖关系的其他库的坐标,一旦选错了依赖的版本,随之而来的不兼容问题就会严重阻碍项目的开发进度。
1.jsp中要写很多代码、控制器过于灵活,缺少一个公用控制器
2.Spring不支持分布式,这也是EJB仍然在用的原因之一。

三、springBoot简介

为了解决上述spring的缺点问题,所以springBoot就出现了。

SpringBoot对上述Spring的缺点进行的改善和优化,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率,一定程度上缩短了项目周期。

Spring Boot 是由 Pivotal 团队提供的全新框架,2014 年 4 月发布 Spring Boot 1.0 2018 年 3 月 Spring Boot 2.0发布。它是对spring的进一步封装,其设计目的是用来简化 Spring 应用的初始搭建以及开发过程。怎么简化的呢?就是通过封装、抽象、提供默认配置等方式让我们更容易使用。

SpringBoot 基于 Spring 开发。SpringBoot 本身并不提供 Spring 框架的核心特性以及扩展功能,也就是说,它并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。

三、springBoot特点

springBoot具有以下特点:

  1. 可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
  2. 内嵌Tomcat或Jetty等Servlet容器,应用无需打成WAR包
  3. 提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置
  4. 大量的自动配置,简化开发,也可修改默认值
  5. 无需配置XML,无代码生成,开箱即用
  6. 提供准备好的特性,如指标、健康检查和外部化配置

三、springBoot两个重要的策略

开箱即用(Outofbox)

在开发过程中,通过在MAVEN项目的pom文件中添加相关依赖包,然后使用对应注解来代替繁琐的XML配置文件以管理对象的生命周期。这个特点使得开发人员摆脱了复杂的配置工作以及依赖的管理工作,更加专注于业务逻辑

约定优于配置(Convention over configuration)

由SpringBoot本身来配置目标结构,由开发者在结构中添加信息的软件设计范式。这一特点虽降低了部分灵活性,增加了BUG定位的复杂性,但减少了开发人员需要做出决定的数量,同时减少了大量的XML配置,并且可以将代码编译、测试和打包等工作自动化

简单来讲,springBoot就是为了优化spring框架开发的,它自动的封装了一些配置和功能,只需要简单的引入几个starter依赖就可以快速的创建一个spring项目,让开发人员从spring配置中解放出来,更加注重业务和功能的开发。

参考:
https://www.jianshu.com/p/24add3c5fedb
https://www.cnblogs.com/mooba/p/11753086.html

下一篇:如何搭建第一个简单的springBoot项目(Hello World)

springBoot之springBoot简介相关推荐

  1. SpringBoot常用配置简介

    SpringBoot常用配置简介 1. SpringBoot中几个常用的配置的简单介绍 一个简单的Spring.factories # Bootstrap components org.springf ...

  2. SpringBoot HATEOAS用法简介(入门)

    REST风格简介 介绍HATEOAS之前先简单介绍一下REST,REST 是 Representational state transfer 的缩写,翻译过来的意思是表达性状态转换.REST是一种架构 ...

  3. SpringBoot HATEOAS用法简介

    REST风格简介 介绍HATEOAS之前先简单介绍一下REST,REST 是 Representational state transfer 的缩写,翻译过来的意思是表达性状态转换.REST是一种架构 ...

  4. 【SpringBoot】SpringBoot简介

    什么是SpringBoot? SpringBoot是为了尽快跑起来Spring项目并尽可能减少配置文件,默认配置了很多框架的使用方式. 为所有Spring 开发提供一个更快更广泛的入门体验. 零配置. ...

  5. 【Springboot】SpringBoot基础知识及整合Thymeleaf模板引擎

    文章目录 SpringBoot简介 SpringBoot是什么 为什么要学习SpringBoot SpringBoot的优势 学习SpringBoot前要具备的基础 创建第一个SpringBoot项目 ...

  6. 【SpringBoot】SpringBoot入门

    SpringBoot入门 SpringBoot简介 SpringBoot快速入门 SpringBoot快速启动 SpringBoot概述 程序启动 切换web服务器 配置文件 配置文件格式 yaml格 ...

  7. 【SpringBoot 】SpringBoot注解详解

    [SpringBoot ]SpringBoot注解详解 一.注解(annotations)列表  @SpringBootApplication:包含了@ComponentScan.@Configura ...

  8. SpringBoot(6) SpringBoot配置全局异常

    SpringBoot(6) SpringBoot配置全局异常 参考文章: (1)SpringBoot(6) SpringBoot配置全局异常 (2)https://www.cnblogs.com/pl ...

  9. SpringBoot序幕——SpringBoot概述及其项目创建

    ⭐️前面的话⭐️ 本篇文章介绍什么是SpringBoot,SpringBoot的优点,以及如何使用IDEA创建SpringBoot项目以及在官网如何创建项目.

最新文章

  1. poj 1740 A New Stone Game 博弈
  2. 我的世界java版不会玩_我的世界:五张MC趣图,Java版玩家永远不懂基岩版玩家的痛...
  3. Qt Creator测验Testing
  4. Java线程:线程的同步-同步方法
  5. win10系统使用Anaconda安装opencv(python)
  6. Dubbo+Zookeeper+SpringBoot
  7. OpenGL——二维几何变换
  8. 长远锂科:拟发行可转债募资不超32.5亿元
  9. 国内 UOS 统一操作系统曝光;联想宣布要 All in 5G​;Android Studio 新版发布 | 极客头条...
  10. 在普通类中获取spring容器中的bean
  11. android 呼吸灯权限_Android 呼吸灯效果
  12. linux iconv命令详解,iconv命令
  13. (转载)基于Overfeat的图片分类、定位、检测
  14. 现实中的CTF大赛都有哪些人参与
  15. 轻松解决mscorsvw.exe进程CPU占用高的问题
  16. python画简便的图片-用python简单处理图片(5):图像直方图
  17. 计算机网络学习笔记 01(更新)
  18. 手机短信验证码收不到怎么办?原因和解决方案全都在这里
  19. 使用OBS录屏有很大的电流回声
  20. pdcch加扰_一种基站/终端及其PDCCH加扰/解扰的方法和装置_2014104470078_权利要求书_专利查询_专利网_钻瓜专利网...

热门文章

  1. 构建 django项目
  2. 耐心,细心,贴心,静心
  3. unity本地分数排行榜简单解决方案(Json)
  4. 量化交易:如何让回测更贴近实盘结果
  5. Unity虚拟现实插件VRTK3.3使用教程一:基本配置
  6. javaWEB——新闻系统部分功能
  7. IDEA中如何给代码添加Copyright
  8. python05元组字典
  9. 【红队】ATTCK - 浏览器扩展实现持久化
  10. QQ邮箱如何获得邮我代码