springboot自动配置原理以及手动实现配置类( 二 )


org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.ycw.autoconfig.configuration.SeviceAutoConfiguration2.4、在全局配置文件application.properties中添加属性注入

springboot自动配置原理以及手动实现配置类

文章插图
2.5、写一个Controller测试,ControllerTest
package com.ycw.autoconfig.controller;import com.ycw.autoconfig.configuration.ServiceProperties;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;/** * @author Administrator * @date 2022-09-30 21:54 */@RestControllerpublic class ControllerTest { @Resource private ServiceProperties serviceProperties; @RequestMapping("test") public void test(){serviceProperties.print(); }}运行之后我们可以看到:
springboot自动配置原理以及手动实现配置类

文章插图
分析一下这个过程:
  1. 启动类@SpringBootApplication通过spring.factories文件中的org.springframework.boot.autoconfigure.EnableAutoConfiguration找到了SeviceAutoConfiguration
  2. @Configuration 注解的类SeviceAutoConfiguration被springboot扫描到后,它所标识的@EnableConfigurationProperties(ServiceProperties.class) 开始进入被注入容器的过程
  3. 【springboot自动配置原理以及手动实现配置类】ServiceProperties 类的注解@ConfigurationProperties(prefix = "myconfig") 使得springboot扫描全局配置文件application.properties
  4. application.properties中的 myconfig.name=yangchuanwei 被注入到属性name中,自此ServiceProperties已经被自动配置成功!
获取demo地址可以关注公众号【靠谱杨的挨踢生活】,回复【autoconfig】获取下载链接 。

经验总结扩展阅读