今天使用springboot框架写程序,遇到一个问题。是这样的:
我在一个java类A中定义一个函数a1,然后在另一个的类B中用函数b1调用了函数a1。但是,我在类A中使用注解@Autowired调用了其他类C,然后在函数a1中使用了C类中的函数。但是A类中的注解@Autowired实例的c返回是null。
出现问题原因是:我在类B中使用类A中函数,是用的new新建的A类对象,比如 A aa = new A();这种方法出现了问题,应该改为注解的方式在B类中引用A,如:
@Autowired
A aa; 这种方式就可以了。
@Component
public class AirConditionEnvironmentService { //类A
@Autowired
private producer producers; //类C,就是这个注解下的producers在下面函数中为NULL
public void EnvironmentDevId(List<EnvironmentDTO> envirDevIdList){}//函数a
public class ConditioningApi { //类B
@Autowired
ConditionEnvironmentService ConditionEnvironmentService;//正确使用类A的方法
public void GHairCondition() {
//ConditionEnvironmentService ConditionEnvironmentService = new
ConditionEnvironmentService(); //错误使用类A的方法
}