Spring配置初始化方法

时间:2012-01-04 22:15:48

标签: java spring spring-3

如何告诉Spring运行该init方法?我需要获取Proxied Async类并使用它进行一些初始化。

@Configuration
@EnableAsync
public class Config  {

 @Bean
 public AsyncBean asyncProxyBean(){
    return new AsyncBean();
 }

 public void init(){
   doStuffWithProxy(asyncProxyBean());
 }

 @Bean
 public String thisIsHack(){ //this runs the init code but bean is a bit hacky
    doStuffWithProxy(asyncProxyBean());
    return "";
 }

}

3 个答案:

答案 0 :(得分:12)

您可以使用@PostConstruct

答案 1 :(得分:4)

使用@PostConstruct注释以及:

  • <context:annotation-config />
  • <bean class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor" />

有关详细信息,请参阅here。这是一个Java EE注释,因此可能不适合您的环境。

答案 2 :(得分:0)

  • 通常你可以对原始对象做事。您很少需要使用代理执行操作 - 这样您依赖于一些spring内部(它与动态代理一起使用的方式)
  • 如果您确实需要代理,那么我猜您可以尝试使用BeanPostProcessor