2012-01-04 14 views
6

¿Cómo puedo decirle a Spring que ejecute ese método init? Necesito obtener la clase Proxied Async y hacer una inicialización con ella.Configuración de primavera Método Init

@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 ""; 
} 

} 

Respuesta

0
  • por lo general se puede hacer las cosas que el objeto original. Rara vez se tiene que hacer las cosas con el proxy - de esa manera que se basan en algunos detalles internos de muelles (la forma en que trabaja con los proxies dinámicos)
  • si realmente necesita el proxy, entonces supongo que puede intentar usar un BeanPostProcessor
+0

En mi caso, el representante es un AsyncEventHandler y necesita registrar el manipulador con el productor del evento. –

4

Utilice la anotación @PostConstruct junto con:

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

Ver here para más detalles. Esta es una anotación Java EE, por lo que puede no ser apropiada en su entorno.

+0

No necesitaba ningún xml para hacer que esto funcione ... solo @PostConstruct basta –

+1

@DD. Sin saber nada sobre su entorno, porque no proporcionó ninguna, es imposible proporcionar una respuesta perfecta, así que incluí algunos detalles, en lugar de solo un enlace, que SO desaprobadora. Esta anotación no se procesará a menos que * algo * haya indicado que se debe realizar el proceso de anotación. –

Cuestiones relacionadas