SpringBoot自动装配

本文探讨了SpringBoot的自动装配特性。通过在application.properties中设置debug=true,可以查看自动配置类。@SpringBootApplication结合@Configuration、@EnableAutoConfiguration和@ComponentScan,其中@EnableAutoConfiguration根据依赖启动自动配置,如加入spring-boot-starter-web会自动配置Tomcat和Spring MVC。@ConfigurationProperties则用于将配置文件属性绑定到bean上,便于获取和使用配置属性。
摘要由CSDN通过智能技术生成

先上图

在application.properties中设置debug=true,可用在控制台查看一起用和未启用的自动配置类。

@SpringBootApplication注解是@Configuration注解、@EnableAutoConfiguration注解和@ComponentScan注解的组合。其中,@Configuration表示该类是Java配置类。

@ComponentScan开启了自动扫描符合条件的bean(例如@Controller、@Service等注解)

@EnableAutoConfiguration会根据类路径中的jar依赖为项目进行自动配置,比如添加了spring-boot-starter-web依赖,会自动添加Tomcat和Spring MVC的依赖,然后SpringBoot会对Tomcat和SpringMVC进行自动配置(spring.factories里面的EnableAutoConfiguration配置了WebMvcAutoConfiguration)。

@EnableAutoConfiguration注解主要由@AutoConfigurationPackage,@Import({

AutoConfigurationImportSelector.class})构成的。@AutoConfigurationPackage用于将启动类所在的包里面的所有组件注册到spring容器里。

@Import将AutoConfigurationImportSelector注入到Spring容器中,AutoConfigurationImportSelector通过SpringFactoriesLoader从类路径下去读取META-INF/spring.factories文件信息,此文件中有一个key为org.springframework.boot.autoconfigure.EnableAutoConfiguration,定义了一组需要自动配置的bean

这些配置类不是都会被加载,会根据xxxAutoConfiguration上的@ConditionalOnClass等条件判断是否加载,符合条件才会将相应的组件加载到Spring容器中。(比如mybatis-spring-boot-starter,会自动配置SqlSessionFactory、SqlSessionFactoryBean、DataSource等Mybatis)

@ConfigurationProperties的作用就是将配置文件的属性绑定到对应的bean上。全局配置的属性如:server.port等,通过@ConfigurationProperties注解,绑定到对应的XxxxProperties bean,通过这个bean获取相应的属性(serverProperties.getPort())。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值