Spring boot, Auto Configure

2018-04-20  本文已影响0人  韩懿留

最近闲来无聊, 搞了搞RocketMQ.

网上找了找starter包, 没找到什么合适的, 故决定自己写一个.

接下来的工作就是翻文档.

恩, 翻文档.

文档里面有个用git提交日志做的sample, 可以看下.

暂时做出来的功能很简单, 只是根据annotation扫包, 具体的配置还没有处理.

大概需要注意的就几个地方.

1, @Configuration类的conditional加载条件.

2, Properties类, 属性的加载, 从spring.properties或yaml文件.

3, META-INF下的spring.factories文件里的配置.

4, dependency里面对于rocketmq的引用optional为true.

5, 使用AutoConfigurationPackages.get()获取扫包的所有package列表

6, 扫包用的ClassPathBeanDefinitionScanner, 继承该类, 使用step5中获得的package列表去扫bean. 添加创建bean的filter, 使用addIncludeFilter方法和AnnotationTypeFilter.

7, 扫完包获取所有对应的beanDefinationHolder, 对bean进行配置和初始化操作.(写到这一步).

8, 建个sample项目, 验证autoConfiguration是否好用.

9, 忘了写, 自己的autoconfigure项目要依赖springboot的spring-boot-configuration-processor.

大概要注意的点就这些.

具体的项目结构, 依赖导入等等的细节自行去看springboot项目的源码, 写的很清晰.

上一篇下一篇

猜你喜欢

热点阅读