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

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

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

1.1 首先创建一个普通的Maven项目,然后在pom文件中引入springboot自动配置依赖包spring-boot-autoconfigure
关于springboot自动化配置,创建一个spring-boot-starter的简单实现_第1张图片
1.2 创建一个普通java类PersonProperties,使用@ConfigurationProperties进行标注,将配置文件application.yml / application.properties中以person开头的配置与该类中的属性一一对应
关于springboot自动化配置,创建一个spring-boot-starter的简单实现_第2张图片
1.3 创建一个业务列PersonService,定义一个showPersonInfo获取personProperties对象的属性值
关于springboot自动化配置,创建一个spring-boot-starter的简单实现_第3张图片
1.4 这是关键类,创建一个自动化配置类PersonAutoConfiguration,使用@Configuration标注表明该类是一个配置类,@EnableConfigurationProperties使PersonProperties类的@ConfigurationProperties注解生效并将配置文件中的属性注入到PersonProperties类的实例bean中,@ConditionOnClass注解表示只有个在classpath下存在PersonService类时该配置这里的配置才生效,@Bean标注的方法的返回对象放入springIOC容器中
关于springboot自动化配置,创建一个spring-boot-starter的简单实现_第4张图片
1.5 然后在项目resources目录下创建一个META-INF目录,并创建spring.factories文件
在这里插入图片描述
spring.factories文件内容:
在这里插入图片描述
因为springboot项目的启动类都有@SpringBootApplication注解,该注解又被@EnableAutoConfiguration注解标注,表示启用自动配,而该注解会引入一个AutoConfigurationImportSelector类,该类会自动扫描META-INF/spring.factories文件,并加载里面配置的自动化配置类

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

关于springboot自动化配置,创建一个spring-boot-starter的简单实现_第5张图片
发布成功:
关于springboot自动化配置,创建一个spring-boot-starter的简单实现_第6张图片

2. 创建一个SpringBoot项目

2.1 创建一个Springboot项目引入以上的项目person-spring-boot-starter
关于springboot自动化配置,创建一个spring-boot-starter的简单实现_第7张图片
引入成功后可以在外部类库中看到:
关于springboot自动化配置,创建一个spring-boot-starter的简单实现_第8张图片
2.2 创建一个测类,注入PersonService的实例进行测试
关于springboot自动化配置,创建一个spring-boot-starter的简单实现_第9张图片
2.3 在没有在application.yml配置文件中配置属性是运行正常,打印的是默认配置信息,结果如下:
在这里插入图片描述
2.4 在配置文件中配置相关属性
关于springboot自动化配置,创建一个spring-boot-starter的简单实现_第10张图片
2.5 配置后运行结果与配置信息一致,成功运行:
在这里插入图片描述

你可能感兴趣的:(springboot)