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?

È stato utile?

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 .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top