您的位置:首页 > 编程语言 > Java开发

关于springboot自动化配置,创建一个spring-boot-starter的简单实现

2019-06-03 15:29 1686 查看

今天学习了关于springboot自动化配置相关内容,这里通知自定义一个简单的spring-boot-starter项目帮助理解

1. 创建一个普通的Maven项目

1.1 首先创建一个普通的Maven项目,然后在pom文件中引入springboot自动配置依赖包

spring-boot-autoconfigure


1.2 创建一个普通java类
PersonProperties
,使用
@ConfigurationProperties
进行标注,将配置文件
application.yml / application.properties
中以
person
开头的配置与该类中的属性一一对应

1.3 创建一个业务列
PersonService
,定义一个
showPersonInfo
获取
personProperties
对象的属性值

1.4 这是关键类,创建一个自动化配置类
PersonAutoConfiguration
,使用@Configuration标注表明该类是一个配置类,
@EnableConfigurationProperties
使PersonProperties类的
@ConfigurationProperties
注解生效并将配置文件中的属性注入到PersonProperties类的实例bean中,
@ConditionOnClass
注解表示只有个在classpath下存在PersonService类时该配置这里的配置才生效
,@Bean
标注的方法的返回对象放入springIOC容器中

1.5 然后在项目resources目录下创建一个META-INF目录,并创建spring.factories文件

spring.factories文件内容:

因为springboot项目的启动类都有
@SpringBootApplication
注解,该注解又被
@EnableAutoConfiguration
注解标注,表示启用自动配,而该注解会引入一个
AutoConfigurationImportSelector
类,该类会自动扫描
META-INF/spring.factories
文件,并加载里面配置的自动化配置类

1.6 将该Maven项目打包发布的到本地Maven仓库


发布成功:

2. 创建一个SpringBoot项目

2.1 创建一个Springboot项目引入以上的项目

person-spring-boot-starter


引入成功后可以在外部类库中看到:

2.2 创建一个测类,注入PersonService的实例进行测试

2.3 在没有在application.yml配置文件中配置属性是运行正常,打印的是默认配置信息,结果如下:

2.4 在配置文件中配置相关属性

2.5 配置后运行结果与配置信息一致,成功运行:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: