春天刻板印象注释是否有preConstruction?

时间:2012-07-30 06:23:05

标签: java spring

我可以为我的域类使用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); 
  }

}

1 个答案:

答案 0 :(得分:1)

我不认为常规的Spring bean可以使用这样的东西,但解决这个问题的常用方法是使用@PostConstruct - 带注释的方法而不是构造函数:

@PostConstruct
public void init() {
    context.doSomething(this);    
} 

在注入所有依赖项之后,Spring将调用此方法。