2012-01-04 10 views
6

Come posso dire a Spring di eseguire quel metodo di inizializzazione? Ho bisogno di ottenere la classe Proxied Async e di fare un'inizializzazione con esso.Metodo di inizializzazione della primavera

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

} 

risposta

0
  • di solito si possono fare le cose per l'oggetto originale. Raramente è necessario fare le cose con il proxy - in questo modo si basano su alcune istruzioni di primavera (il modo in cui funziona con i proxy dinamici)
  • se si ha realmente bisogno il proxy, allora credo che si può provare a utilizzare un BeanPostProcessor
+0

Nel mio caso il proxy è un AsyncEventHandler e ho bisogno di registrare il gestore con il produttore di eventi. –

4

Utilizzare il @PostConstruct annotazioni insieme:

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

Vedere here per dettagli. Questa è un'annotazione Java EE, quindi potrebbe non essere appropriata nel proprio ambiente.

+0

Non ho bisogno di alcun xml per farlo funzionare .. basta @PostConstruct suffisso –

+1

@DD. Senza sapere nulla del tuo ambiente, perché non ne hai fornito nessuno, è impossibile fornire una risposta perfetta, quindi ho incluso alcuni dettagli - invece di un semplice link, che SO aggrotta le sopracciglia. Questa annotazione non verrà elaborata a meno che * qualcosa * non abbia indicato l'elaborazione dell'annotazione. –

Problemi correlati