मूल रूप से मैं अपने आवेदन को 2 भागों में विभाजित करना चाहता हूं। प्रत्येक भाग में इसकी अपनी सुरक्षा सामग्री होती है और @Controller
एस है। दोनों भागों से सुलभ होना चाहिए।एकाधिक डिस्पैचर सर्विलेट के साथ स्प्रिंग बूट, प्रत्येक के पास अपने स्वयं के @ नियंत्रक
तो मैंने सोचा, मुझे 2 DispatcherServlet
मिलना चाहिए। एक /admin/*
और दूसरा सब कुछ सुन रहा है (/
)। उनमें से प्रत्येक का अपना AnnotationConfigWebApplicationContext
होगा, इसलिए मेरे पास @Controller
एस के लिए अलग घटक स्कैन हो सकता है।
और क्योंकि वसंत बूट बॉक्स से बाहर /
पर एक DispatcherServlet
सुनने प्रदान करता है, मैंने सोचा, मैं तो बस एक दूसरे के जोड़ सकते हैं:
@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;
}
}
MyConfig2
वर्ग, केवल @Configuration
और @ComponentScan
। उसी पैकेज में @Controller
है।
एप्लिकेशन शुरू करते समय, मैं देख सकता हूं कि दूसरा सर्वलेट मानचित्रण पंजीकृत हो रहा है, लेकिन @Controller
नहीं है। इसके अतिरिक्त अब मैं सभी@Controllers
/
और/admin
से अब तक पहुंच सकता हूं।
कोई विचार यह है कि मैं यह कैसे काम कर सकता हूं?
उत्तर के लिए धन्यवाद। वास्तव में मदद करता है। मुझे दूर करने के लिए एक और चुनौती है। मैं/foo endpoints + प्राधिकृत (डीबी आधारित) को प्रमाणित कैसे कर सकता हूं लेकिन केवल/बार एंडपॉइंट्स को प्रमाणित करता हूं? मेरे पास यहां से एक विन्यास है [0]। http://stackoverflow.com/questions/36909226/how-to-configure-waffle-in-spring-using-java-configuration – JHS
धन्यवाद बेंजामिन, मैं एक ही समस्या से जूझ रहा था और पाया कि @EnableMvcConfig को आपके उत्तर पढ़ने के बाद आवश्यक है । – jatanp
उस पूरी व्याख्या के लिए धन्यवाद! इससे मुझे दो अलग-अलग समस्याओं को हल करने में मदद मिली। मेरा मतलब है कि "यह काम करता है:" के साथ स्वयं जवाब देने के लिए आम है: प्लस कोड स्पष्टीकरण के बिना बिट्स ... – sjngm