SpringBoot
初衷是为Spring开发者提供一种,快速,体验更好的Spring应用开发方式
核心功能: spring容器,日志,自动配置AutoCongfiguration,Starters
web应用的能力:MVC,嵌入式容器
数据访问(持久化): 关系型数据库, 非关系型数据库
强大的整合其他技术的能力
测试: 强悍的应用测试
我们曾经在Spring中怎么做的web开发
1.配置web.xml,加载spring和spring mvc
2.spring配置数据库连接,配置事务
3.配置加载 配置文件的读取,开启注解
4.配置日志文件
5.配置完成之后部署 Tomcat 调试
SpringBoot原理分析
1.依赖管理的原理
依赖管理(Dependency Management)
1.1 继承了spring-boot-starter-parent的好处和特点
默认编译java1.8 默认编码UTF-8
通过spring-boot-denpendencies的pom管理所有公共依赖的版本,
这样就不用写依赖的版本了
插件管理
1.2 POM文件中的Maven插件
如果想使用父pom文件中的任何插件,无需配置即可使用
2.Starters的原理
starters是依赖关系的整理和封装, 是一套依赖坐标的整合
可以让导入应用开发的依赖坐标更方便
有了这些Starters,你获得Spring和其整合的所有技术的一站式服务。
无需配置、无需复制粘贴依赖坐标,一个坐标即可完成所有入门级别操作。
举例:JPA or Web开发,只需要导入 spring-bootstarter-data-jpa 或 spring-boot-starter-web 。
每个Starter包含了当前功能下的许多必备依赖坐标,这些依赖坐标是项目开发上线和运行必须的。同时这些依赖也支持依赖传递。
3.自动配置原理
每个Starter基本都会有个AutoConfiguration的Jar包,
每个AutoConfiguration定义了约定的默认配置。
有了自动配置,那么我们的配置就全部采用默认配置,若需要配置,也可以更改
如何查看自动配置的值在哪里?查看启动类注解@SpringBootApplication
追踪步骤:一路往下点!
2. @EnableAutoConfiguration
3. @Import({AutoConfigurationImportSelector.class})
4. spring.factories
5. org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfigur
ation
6. @EnableConfigurationProperties({ServerProperties.class})
7. private final ServerProperties.Tomcat tomcat = new ServerProperties.Tomcat();