使用自定义配置类ConfigurationProperties启动项目报错问题
下面是报错信息

@Data
@Configuration
@ConfigurationProperties(prefix = "aa.bb")
public class XxConfig {
/**
* xx
*/
private String xx;
/**
* oo
*/
private String oo;
}
``
报错得是自定义得配置类,网上搜有解决方案,很多都是不能解决问题得。总结一下各种方案
- 配置类上没加@Configuration导致配置类扫描不到,这个很常见。
- 使用配置类时用@Autowired(required = false)。极不推荐,不能解决问题,掩耳盗铃。如:
@Service
public class XxServiceImpl implements XxService {
@Autowired(required = false)
private XxConfig config;
}
- 在引用配置类得类上面加注解@EnableConfigurationProperties,我目前就是这种方案解决的。如:
@Service
@EnableConfigurationProperties(XxConfig.class)
public class XxServiceImpl implements XxService {
//推荐使用@Resource代替@Autowired
@Resource
private XxConfig config;
}