我可以为我的域类使用preConstruction = true,这样我就可以在构造函数中使用自动装配的字段,如下所示:
@Configurable(preConstruction=true)
public class MyDomain {
@Autowired private MyContext context;
public MyDomain() {
context.doSomething(this); // access the autowired context in the constructor
}
}
但是,当我想要使用正常的构造型注释(例如@Repository或@Service除了构造函数注入)访问类中的自动装配字段时,preConstruction的等价性是什么(目前在这里使用spring 3.x ..) ?
@Repository
public class MyDomainRepository {
@Autowired private MyContext context;
public MyDomain() {
// cannot access the autowired context in the constructor
context.doSomething(this);
}
}
答案 0 :(得分:1)
我不认为常规的Spring bean可以使用这样的东西,但解决这个问题的常用方法是使用@PostConstruct
- 带注释的方法而不是构造函数:
@PostConstruct
public void init() {
context.doSomething(this);
}
在注入所有依赖项之后,Spring将调用此方法。