springboot|【Springboot深入探究】(二)自动装配原理及自定义Starter
谈到springboot的核心机制,即自动装配。
自动装配是在服务初始化时,自动将需要的组件注入到IOC容器种,以待后续的使用。
步骤:
- 获取各组件种META-INF/spring.factories文件
- 根据其中value值(其value为类名),通过反射方式创建实体类
- 将实体类注入到IOC容器中,待后续使用。
为了便于理解自动装配,可通过自己实现starter jar来理解。
- 创建starter包 - 创建Empty Project及module,命名其为xxx-starter
①定义配置文件规范及对应对象类,比如我规定涉及我的starter的配置结构为cyz.pro
//此注解类似@Value,能获取到配置文件中的配置条目 @ConfigurationProperties(prefix = "cyz") public class PrefixPojo { private String pro; public String getPro() { return pro; }public void setPro(String pro) { this.pro = pro; } }
②编写配置组件类,将配置对象放置到容器中。只要声明为组件,便会注入到IOC容器中。
@Configuration @EnableConfigurationProperties(value = https://www.it610.com/article/PrefixPojo.class) @ConditionalOnWebApplication //表示web应用条件下激活 public class PrefixConfiguration {PrefixPojo pojo; @Autowired public PrefixConfiguration(PrefixPojo pojo) { this.pojo = pojo; }public String service(){ return pojo.getPro() +"!!"; } }
③在resource路径创建“META-INF”路径,创建spring.factories文件,指定组件类
org.springframework.boot.autoconfigure.EnableAutoConfiguration = \ pro.yizheng.yizhengstarter.config.PrefixConfiguration
- 将其导出为jar
①其pom如下:
org.springframework.boot spring-boot-starterorg.springframework.boot spring-boot-configuration-processortrue
【springboot|【Springboot深入探究】(二)自动装配原理及自定义Starter】②通过maven install命令将此工程打到maven库中
文章图片
至此,自定义starter步骤结束。
文章图片
文章图片
推荐阅读
- 宽容谁
- 我要做大厨
- 增长黑客的海盗法则
- 画画吗()
- 2019-02-13——今天谈梦想()
- 远去的风筝
- 三十年后的广场舞大爷
- 叙述作文
- 20190302|20190302 复盘翻盘
- 学无止境,人生还很长