SpringBoot概述目录
Spring:the source for modern Java
SpringBoot --> Spring Cloud --> 各种解决方案
SpringBoot并不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式。
SpringBoot快速构建Spring项目,“约定优于配置”,允许程序员专注于逻辑业务代码的编写,提高开发效率。2014年4月,Spring Boot 1.0.0发布。
1. Spring 缺点
1)配置繁琐:XML配置->Spring2.5基于注解的组件扫描->Spring3.0基于Java的配置
2)依赖繁琐:导入库的坐标,且 依赖的版本不兼容
2. SpringBoot功能
1)自动配置:SpringBoot的自动配置是在运行时(应用程序启动时),考虑Spring配置哪些,自动完成的。
2)起步依赖:本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。“起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。”
3)辅助功能:一些非功能特性,嵌入式服务器、等。
3. SpringBoot快速入门
案例:
需求:搭建SpringBoot工程,定义HelloController.java()方法,返回"Hello SpringBoot!"。
实现步骤:
1)创建Maven项目
2)导入SpringBoot起步依赖
3)定义Controller
4)编写引导类
5)启动测试
小结:
1)SpringBoot在创建项目时,使用jar的打包方式,因为它是通过main()方法来启动的
2)SpringBoot的引导类,是项目入口,运行main方法就可以启动项目
4. 起步依赖原理分析
1. spring-boot-starter-parent
spring-boot-dependencies-2.1.8RELEASE.pom
里面有<properties>里有很多技术的版本;
里面有<dependencyManagement>,里定义了很多有版本信息,引用他的就不用写版本信息了,因此不会有版本冲突。
“版本锁定”:在SpringBoot中,可以通过在pom.xml中使用来实现版本锁定。通过版本锁定,可以准确地控制依赖的版本,避免由于依赖升级导致的兼容性问题。
2. spring-boot-starter-web
<dependencies>只需要引用这个坐标就可以引入很多其他坐标了,组合的。
“依赖传递”:依赖的依赖。在SpringBoot中,传递依赖会被自动解析和引入,这样就不需要手动添加每个传递依赖的依赖。
小结
1)在spring-boot-starter-parent中定义了各种技术的版本信息,组合了一套最优搭配的技术版本。
2)在各种starter中,定义了完成该功能需要的坐标的集合,其中大部分版本信息来自于父工程。
3)我们的工程继承parent,引入starter后,通过依赖传递,就可以简单方便获得需要的jar包,并且不会存在版本冲突等问题。