Qualcosa come il cablaggio EJB in primavera per i non EJB di
-
20-09-2019 - |
Domanda
Ho notato di recente che la primavera può cablare i miei EJB per me se annotare il bean con @Interceptors (SpringBeanAutowiringInterceptor.class). Non ho mai fatto questo modo non si conoscono i dettagli.
Mi chiedevo, c'è un modo per farlo funzionare con altri tipi di fagioli, ad esempio, quelli annotati @WebService pure.
Al momento nelle mie classi di servizio web (in quanto il server di applicazione li gestisce) devo caricare le dipendenze dal BeanFactory e sarebbe quindi preferiscono avere loro autowired.
So che potrei usare l'annotazione @Configurable, ma non sono particolarmente desiderosi di avere per specificare e agente sul VM.
È possibile?
Soluzione
Ancora una volta, la primavera ha pensato a questo caso d'uso e adatta per questo!
Il problema è che non è un @WebService molla nota, è un JAX-WS classi annotazione e quindi che annotati con @WebService essere esposti come web servizi non sono gestiti da primavera, ma il loro ciclo di vita è gestito da JAX-WS.
Il modo per gestire questo caso è quello di avere il JAX-WS bean gestito estendere org.springframework.web.context.support.SpringBeanAutowiringSupport - questo permetterà l'annotazione @Autowire, ad esempio, di lavorare in questo bean. vedi qui per ulteriori informazioni
Altri suggerimenti
Sì, certo. C'è @WebService, @Repository, @Controller, @Service, @Endpoint, e altre annotazioni in primavera. Ecco un esempio .