- SpringBoot是什么
- 从字面理解,Boot是引导的意思,因此他是引导Spring快速搭建的一个工具。以前开发的SSM框架需要很多的配置,而SpringBoot采用“习惯优先于配置”的理念,使得用户很容易创建一个独立运行,准生产级别的基于Spring框架的项目。
- SpringBoot的核心功能:
- 独立运行的Spring项目
(嵌入式常用Spring框架开发项目:导航系统),只要有jdk5,不需要外部具备运行Spring框架的容器,程序的入口是main方法 - 内嵌的Servlet容器
web应用不需要依靠外部的web容器(web.xml无需配置),直接启动SpringBoot即可完成一个web应用的运行(独立运行的SpringMVC+Spring项目),默认容器时tomcat,可以替换成其他的容器:jetty,underlow - 提供Maven简化依赖
maven的依赖具有传递性,,SpringBoot想要使用,需要很多的jar包,利用传递性,可以把最终的dependency整合成一个 - 自动配置Spring(“习惯优于配置”)
a. 自动扫描Spring需要的bean(无需xml文件标签),提倡 0 配置
b. 根据依赖的jar包,管理项目的默认配置。如:依赖了starter-web。默认配置Tomcat端口8080,默认访问路径为 /
c. 习惯优于配置。有配置时,使用配置,没有配置时根据依赖的jar包使用默认
注:底层的实现原理:反射+注解
总结:SpringBoot完成了SS框架的整合,并且自行完成一些自带的功能,独立运行,内嵌容器,简化依赖,自动配置。只要是org.springframework.boot的子包,就是SpringBoot提供的其他的都是Spring或者MVC提供的
- SpringBoot的核心原理
- SpringBoot的核心注解
@SpringBootApplication是组合注解,在Spring4.x版本之后,提供了组合注解的功能
组合的3个注解是:
1)@SpringBootConfiguration
必须具备的SpringBoot的配置文件:
除了他规定的配置文件名称以外的配置文件不会被加载,除非使用@ImportResouce引入application.properties,bootstrap.properties等满足SpringBoot工程的配置文件
2) @EnableAutoConfiguration
开启自动配置的注解
根据依赖的jar包,自动检测需要配置的所有SpringBoot工程的默认内容
例如:添加了spring-boot-starter-web简化依赖会自动添加tomcat和spring mvc的依赖,启动项目默认占用的8080端口和默认路径是 /
3)@ComponentScan
对象扫描器
会根据当前工程将启动类所在的包、同名包及其子包中所有Spring+SpringMVC的注解,创建对象,驻留在内存中等待使用。