2

我可以为我的域类使用 preConstruction=true ,这样我就可以在构造函数中使用自动装配字段,例如:

@Configurable(preConstruction=true)
public class MyDomain {

  @Autowired private MyContext context;

  public MyDomain() {
    context.doSomething(this); // access the autowired context in the constructor
  }

}

但是,当我想访问具有正常构造型注释的类中的自动装配字段时,preConstruction 的等价物是什么?

@Repository
public class MyDomainRepository {

  @Autowired private MyContext context;

  public MyDomain() {
    // cannot access the autowired context in the constructor
    context.doSomething(this); 
  }

}
4

1 回答 1

1

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

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

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

于 2012-07-30T07:28:54.893 回答