经典回答: 我也遇到了这个问题,后来解决了,原因是如果有注入bean的那个类,在被其他类作为对象引用的话(被调用)。这个被调用的类也必须选择注解的方式,注入到调用他的那个类中,不能用 new出来做对象,new出来的对象再注入其他bean就会 发生获取不到的现象。所以要被调用的javabean,都需要@service,交给Spring去管理才可以,这样他就默认注入了。
之所以出现这个问题是因为把@value用在了@component修饰工具类中,然后在其他的controller中使用这个工具类 new 出来的对象进行调用,所以会出问题,正确的使用方法是在这个工具类上使用@service修饰,并且在使用的controller中使用注解@Autowire的形式创建对象。
例子: @service修饰的工具类
@controller修饰的controller类
配置文件application.yml