首先,创建一个Spring Boot项目。
pom.xml
pom.xml文件是一个项目中管理资源和插件的文件,打开 pom.xml 文件,我们可以看到如下图所示:
它还存在一个父项目,继续点进去,就可以看到他的父依赖,在父依赖中管理了Spring Boot应用中依赖的所有包版本的地方,在导入包的时候默认是不需要指定版本的;但是,若导入的包在父项目中没有管理,还是需要手动配置版本的。
启动器
spring-boot-starter 是Spring Boot 的启动器,又叫场景启动器。Spring Boot将所有的功能场景都提取出来,做成了一个个的 启动器。
例如:spring-boot-starter-test 测试依赖,导入了单元测试运行时需要导入的所有依赖
spring-boot-starter-web web依赖,导入了web项目运行时需要导入的所有依赖
主启动类
创建了一个Spring Boot项目,可以找到一个由 @SpringBootApplication 注解标注的类,该类就是主程序类,是Spring Boot程序的入口。该注解都做了什么?
点击进入 @SpringBootApplication ,可以发现它的类上面还有注解,如图所示:
注解 @ComponentScan
作用:自动扫描加载符合条件的组件和bean,将bean定义加载到IOC容器中,该注解对应Spring中XML配置文件中的元素。
包含了需要注入的基本类型和String类型的数据,需要扫描的包,需要加载到容器中的bean,当需要参数时,Spring会去容器中查找有没有可用的bean对象。
注解 @EnableAutoConfiguration
作用:开启自动配置的功能,使得Spring Boot来自动配置需要资源,该注解使得自动配置生效。
点击进入,可以发现,它还有很多的注解标注:
getCandidateConfigurations()
该方法返回的就是自动配置的类名,所有的类都存在META-INF中。
进入SpringFactoriesLoader.loadFactoryNames()方法,该方法中定义了属性 FACTORIES_RESOURCE_LOCATION 存放项目资源的路径
在该方法中,再查看 loadSpringFactories() 方法,该方法是用来获取项目资源的。
再来打开这个项目资源 "META-INF/spring.factories;",在该文件中配置包含了所有自动配置的类,在使用时,导入对应的start就可以使用。
注解 @SpringBootConfiguration
作用:标注该类是SpringBoot的配置类
这两个配置说明是一个配置类,对应Spring的XML文件;同时说明启动类也只是Spring Boot的一个组件。