今天使用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的方法
}
本文探讨了在SpringBoot框架下,使用@Autowired注解进行依赖注入时遇到的问题及解决方法。详细分析了直接使用new创建对象导致依赖注入失效的原因,并提供了正确的依赖注入实践。

1048

被折叠的 条评论
为什么被折叠?



