一、SpringBoot是什么?
Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,简化项目开发,省去繁琐配置,提供各种启动
器,开发者可快速上手,是SpringCloud微服务的基础(微服务架构是把每个功能元素放进一个独立的服务中)。
二、优点
1、快速创建独立运行的Spring项目以及与主流框架集成
2、使用嵌入式的Servlet容器,应用无需打成WAR包
3、 starters自动依赖与版本控制
4、 大量的自动配置,简化开发,也可修改默认值
5、无需配置XML,无代码生成,开箱即用
6、准生产环境的运行时应用监控
7、与云计算的天然集成
(独立运行、简化配置、自动配置、无代码生成和XML配置、应用监控等)
三、缺点
由于是自动配置,所以报错时很难定位
四、创建SpringBoot项目的方式
1、导入spring boot基础依赖spring-boot-starter-web和spring-boot-starter-test的起步依赖,spring-boot-starter-web为web功能的
起步依赖,spring-boot-starter-test为spring boot 为测试功能的起步依赖。
2、spring 官方提供自动生成spring boot的基础项目框架的网址,访问https://start.spring.io/
3、idea开发工具,使用Spring Initializer
五、SpringBoot的三种启动方式
1、打包用命令或者放到容器中运行
2、用 Maven/ Gradle 插件运行
3、直接执行 main 方法运行
六、SpringBoot自动配置原理
1、SpringBoot启动的时候加载主配置类,开启了自动配置功能 @EnableAutoConfiguration 。
2、启动类上面的注解是@SpringBootApplication
,主要包含了以下3个注解:
(1)@SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。
(2)@EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能:
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。
@EnableAutoConfiguration将导入一些自动配置的类。这些配置类都会被导入并处于备用状态。如果在maven文件当中引入了相
关包的时候,相关功能将被启用。
(3)@ComponentScan:Spring组件扫描。
3、如果不想让程序去加载某些类,只需要把@SpringBootApplication注解去掉,换成@Congfiguation注解,并通过@Import注解
去指定需要加载的配置类就可以(不建议)。
4、原理:https://blog.csdn.net/wjavadog/article/details/90760854
七、SpringBoot中的starters
spring-boot-starter:spring-boot场景启动器;帮我们导入了web模块正常运行所依赖的组件;
Spring Boot将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目里面引入这些starter 相关场景的所
有依赖都会导入进来。要用什么功能就导入什么场景的启动器