使用自定义配置类ConfigurationProperties启动项目报错问题

下面是报错信息

在这里插入图片描述

@Data
@Configuration
@ConfigurationProperties(prefix = "aa.bb")
public class XxConfig {

	/**
	 * xx
	 */
	private String xx;

	/**
	 * oo
	 */
	private String oo;

}

``

报错得是自定义得配置类,网上搜有解决方案,很多都是不能解决问题得。总结一下各种方案

  1. 配置类上没加@Configuration导致配置类扫描不到,这个很常见。
  2. 使用配置类时用@Autowired(required = false)。极不推荐,不能解决问题,掩耳盗铃。如:
@Service
public class XxServiceImpl implements XxService {

	@Autowired(required = false)
	private XxConfig config;
	
}
  1. 在引用配置类得类上面加注解@EnableConfigurationProperties,我目前就是这种方案解决的。如:
@Service
@EnableConfigurationProperties(XxConfig.class)
public class XxServiceImpl implements XxService {
	
	//推荐使用@Resource代替@Autowired
	@Resource
	private XxConfig config;
	
}