有一个Config类,需要引用了Properties属性类,Properties类用@ConfigurationProperties和@PropertySource自动从yml配置文件装配类属性,而Config类里面有若干个用@Bean进行ioc注册实例的操作,而这些实例也需要用到Properties类,结果是Config类用@Resource来引用Properties类,获取不到,返回null,用applicationContext.getBean手动获取,可以获取 ,但Properties实例里面的属性全部为null,也就是自动装配失败!
这个问题查了很久,后来才发现这种隐性依赖spring并没能检测出来,导致Properties类还没完全装配完成就被引用了。重新构建了config类解决。
建议从以下路径排错:
1、@Bean实例里面需要用到IOC里面的实例,不要在父类里面用@Resource来引用依赖,要直接将这个实例作为参数传入
2、或者将@Bean全部抽出来放到另一个类



