Fondamentalmente voglio dividere la mia applicazione in 2 parti. Ogni parte ha le proprie caratteristiche di sicurezza e possiede @Controller
s. Il @Services
dovrebbe essere accessibile da entrambe le parti.Avvio a molla con DispatcherServlet multipli, ciascuno con i propri @Controllers
Quindi ho pensato, dovrei ottenere 2 DispatcherServlet
. Uno che ascolta /admin/*
e il secondo ascolta tutto il resto (/
). Ognuno di questi avrà il suo AnnotationConfigWebApplicationContext
così posso avere una scansione dei componenti separata per il @Controller
s.
E perché la primavera di avvio fornisce un DispatcherServlet
ascolto su /
fuori dalla scatola, ho pensato, posso solo aggiungere un secondo:
@Configuration
public class MyConfig {
@Bean(name="myDS")
public DispatcherServlet myDS(ApplicationContext applicationContext) {
AnnotationConfigWebApplicationContext webContext = new AnnotationConfigWebApplicationContext();
webContext.setParent(applicationContext);
webContext.register(MyConfig2.class);
// webContext.refresh();
return new DispatcherServlet(webContext);
}
@Bean
public ServletRegistrationBean mySRB(@Qualifier("myDS") DispatcherServlet dispatcherServlet) {
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(dispatcherServlet);
servletRegistrationBean.addUrlMappings("/admin/*");
servletRegistrationBean.setName("adminServlet");
return servletRegistrationBean;
}
}
Il MyConfig2
di classe, ha solo @Configuration
e @ComponentScan
. All'interno dello stesso pacchetto è un @Controller
.
All'avvio dell'applicazione, posso vedere che la seconda mappatura servlet viene registrata, ma lo @Controller
non lo è. Inoltre ora posso accedere a all@Controllers
da /
e/admin
.
Qualche idea su come posso farlo funzionare?
Grazie per la risposta. Aiuta davvero Ho ancora una sfida da superare. Come posso autenticare + autorizzare (basato su DB) gli endpoint/foo ma solo autenticare gli endpoint/bar? Ho una configurazione da qui [0]. http://stackoverflow.com/questions/36909226/how-to-configure-waffle-in-spring-using-java-configuration – JHS
Grazie Benjamin, ero alle prese con lo stesso problema e ho scoperto che @EnableMvcConfig è richiesto dopo aver letto la tua risposta . – jatanp
Grazie per questa spiegazione approfondita! Mi ha aiutato a risolvere due diversi problemi. Voglio dire, è normale auto-rispondere con "questo funziona:" più i bit del codice senza spiegazione ... – sjngm