一、注入注解不能重复使用
在我们开发过程中,输入@后会出现一个注解是@EnableConfigurationProperties,当我们在主程序加入这个注解后,运行后会报一个错误,如下图:
错误的意思就是,spring在运行时发现两个相同的bean,所以报了一个bean不唯一的错误。在我们的config中是这样配置的
@Component
@ConfigurationProperties(prefix = "servers")
@Data
public class ServletConfig {
private String ipAddress;
private int port;
private long timeout;
}
这里的@Compoent其实已经把该类当作一个bean交给spring管理,而@EnableConfigurationProperties(Servlet.class),是开启这个配置开关,也就是将Serlet.class当作一个bean,所以重复使用。
所以我们在开发时,@EnableConfigurationProperties不可与Compoent同时出现,当我们去掉其中一个再运行后,程序正常运行。
二、加@ConfigurationProperties后报警告
在我们的配置中添加@ConfigurationProperties后idea给我们报了一个错:
Spring boot Configuration Processor未配置。
解决办法:
我们在pom文件中添加依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</dependency>
刷新后即可消除报红。