为什么我们在使用SpringBoot框架开发Java Web应用需要引入大量的starter?例如,我们引入Redis就在Maven中导入
spring-boot-starter-data-redis。大家都知道SpringBoot的核心功能是自动装配,简化配置,我们通过starter实现SpringBoot自动装配的功能。那么我们如何去构建自己的starter呢?
1 前言
SpringBoot现在几乎占据的Java的大半壁江山,它的优势显而易见,它通过自动装配功能为我们简化了Spring繁杂的配置,并且内嵌Tomcat让我们启动Web项目不需要去自己配置Tomcat,这些都能大大提高我们的开发效率和代码质量。至于我们为什么在使用SpringBoot框架构建项目时,导入其它依赖都是什么什么starter?其实,这些starte就为我们实现了SpringBoot自动装配的功能,下面我们将一起将一下自动装配功能如何实现,自己怎样去构建一个SpringBoot的starter应用。
2 @EnableConfigurationProperties实现自动装配
2.1 创建一个starter项目
通过Maven创建一个项目
在pom文件中添加对应的依赖
<dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.22</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.5.6</version> </dependency> </dependencies>复制代码
2.2 创建一个需要自动装配的Bean
使用@
EnableConfigurationProperties注解
创建一个类这个类最后是可以通过配置文件自动装配的,添加注解@
EnableConfigurationProperties时会报错,因为这个是需要将当前对象定义为Spring的一个组件,但是我们不是通过@Component注解注册成为Spring组件的。
/** * @author zhj */@Data@ConfigurationProperties(prefix = "com.zhj.vo.student")public class Student { private Long id; private String name; private Integer age;}复制代码
2.3 自动装配类实现
@Configuration是需要进行Bean注册的类