SpringBoot的自动装配
在上一个blong中,体验了SpringBoot带给我们开发时的简便,开箱即用。
但使用时越是简单,其背后的逻辑与业务更加复杂,所以要想真正掌握SpringBoot,那就先捋一遍其背后的业务,看看SpringBoot是如何帮我们直接配置好一个项目的。
SpringBoot项目的依赖
打开IDEA,然后打开右侧的Maven,选中Dependencies,打开Show Dependencies:
密密麻麻,按住ctrl+上滑鼠标滚轮放大,可以看到,里面集成了非常多的依赖。
接着打开pom文件,查看父依赖,一直到底部
然后往下找,在<properties>
标签中,可以看到该这个SpringBoot中所有的依赖:
标签是依赖名,里面的值是该jar包的版本号。
但是SpringBoot又是如何在项目中使用需要的包呢?
SpringBoot的自动配置
SpringBoot的运行根据建立时生成的Application类运行的,所以从这里开始,按住ctrl,点击@SpringBootApplication
跳转到:SpringBootApplication接口中
而这个接口的上面有三个比较重要的注解:
1.@SpringBootConfiguration
将该注解标注在某个类上说明这个类是SpringBoot的主配置类 , SpringBoot就应该运行这个类的main方法来启动SpringBoot应用。
按住ctlr进入该注解:
继续进入@Configuration
这时就可以看到一个熟悉的注解了,@Component,这就是Spring IOC用来标注实体类的注解。
@EnableAutoConfiguration
翻译过来就是,使用自动配置,所以注解就是用来完成这个项目的配置工作。
进入该注解,
发现里面,导入了一个AutoConfigurationImportSelector类,自动配置选择器,它将所有需要导入的组件以全类名的方式返回 , 这些组件就会被添加到容器中 。
接着按下图的标注,
找到FACTORIES_RESOURCE_LOCATION = “META-INF/spring.factories”,然后再IDEA中连续按两下shift键,搜索spring.factories
点进去:
这时你会发现,SpringBoot将所有的配置需要的文件路径都放在了这个properties文件中,当你的项目在运行时,SpringBoot启动器(spring-boot-starter)就会从该properties文件中选择你需要的配置,并自动配置给你。我们可以随便点一个类,
进去后,会发现,都有一个@Bean标注,当被@Bean标注后,Application启动类在运行时就会将被选择的类实例化。