2014-09-14 4 views
6

so come abilitare il supporto asincrono in una configurazione XML, l'ho fatto per i filtri e le servlet con l'aggiunta di tagCome abilitare asincrona supportato per una primavera applicazione MVC nel file di configurazione di Java (non XML)

async-supported>true/async-supported 

Come farlo in un file di configurazione Java. Creo una classe WebInit che implementa WebApplicationInitializer e sostituisce onStartUp -che cosa dovrei fare dopo?

public class WebInit implements WebApplicationInitializer { 

    @Override 
    public void onStartup(ServletContext container) throws ServletException { 
     //What to do here, to move from XML to java config 
} 
} 
+1

javadoc ha un esempio: http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/WebApplicationInitializer.html. È necessario registrare una classe di configurazione per l'applicazione Spring e questa classe di configurazione deve solo essere annotata con '@ EnabledAsync'. –

risposta

3

secondo le seguenti linee -

ServletRegistration.Dynamic registration = container.addServlet(servletName, myServlet); 
registration.setAsyncSupported(true); 

EDIT: Siamo spiacenti, non si rese conto che si stava cercando una soluzione specifica primavera. Con Spring MVC si dovrebbe semplicemente estendere un AbstractAnnotationConfigDispatcherServletInitializer partendo dal presupposto che i propri contesti root e web siano basati su @Configuration. Questo inizializzatore a turno si estende da AbstractDispatcherServletInitializer, questa classe ha flag asyncSupported impostato per impostazione predefinita.

+0

Biju, Grazie per il puntatore, ma voglio aggiungere questo supporto al servlet Spring Dispatcher. Ho usato enableMvc e altre annotazioni per configurare MVC e non esiste alcuna mappatura esplicita per il servlet di spring dispatcher. Come posso recuperare il riferimento del servlet del dispatcher creato e aggiungervi un tag asyn supportato? – cpandey05

+0

Capito, ho pensato che questa fosse una domanda generica su come impostare il flag 'async' per un servlet - ho modificato la mia risposta ora per il servlet specifico di Spring. Verifica se la modifica è utile. –