我对整个 spring 依赖注入(inject)有点陌生。 有件事我不明白,希望有人能为我澄清......
我有一项服务:
@Service
public class Service {...}
还有另一个类:
public class A{
@Autowired
private Service service;
...
}
在这种情况下,Service 将按预期注入(inject)到 A 类中。 据我所知,A类中不能使用构造函数,否则注入(inject)将无法进行。有没有办法在A类中使用构造函数并同时注入(inject)Service? 即:
public class A{
@Autowired
private Service service;
private String a;
private int b;
public A(String a,int b){
this.a = a;
this.b = b;
}
}
在这种情况下,我发现服务为空,无论如何要解决这个问题吗? 我希望能够使用“new”从类型 A 创建一个对象,并注入(inject)服务,这可能吗?
谢谢。
最佳答案
重要的是您的两个类都应该是 Spring bean。
这又意味着所有实例化都将由 Spring 容器完成。要了解如何正确处理基于构造函数的依赖注入(inject),请检查 ref doc 的这一点
如果为什么,您不能将类 A
设为 Spring bean,那么推荐的方法是使用 @Configurable
对其进行注释,这将在创建时 Autowiring 依赖项。
请注意,为此,您需要启用方面。我快速搜索了一下,发现了这个 blog这似乎很好地解释了细节
关于java - Spring 依赖注入(inject)到带有构造函数的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39930654/