大佬教程收集整理的这篇文章主要介绍了java – 在spring应用程序中使用多个调度程序servlet,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的spring应用程序中,我有以下Spring环境配置类:
WebAppInitializer.java
@Order(value=1)
public class WebAppInitializer implements WebApplicationInitializer {
@SuppressWarnings("resource")
@Override
public void onStartup(ServletContext container) {
// Create the 'root' Spring application context
AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext();
rootContext.register(WebAppConfig.class);
// Manage the lifecycle of the root application context
//container.addListener(new ContextLoaderListener(rootContext));
// Create the dispatcher servlet's Spring application context
AnnotationConfigWebApplicationContext dispatcherContext = new AnnotationConfigWebApplicationContext();
dispatcherContext.register(DispatcherConfig.class);
// Register and map the dispatcher servlet
ServletRegistration.Dynamic dispatcher = container.addServlet("dispatcher",new DispatcherServlet(dispatcherContext));
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/");
}
}
WebAppConfig.java
@EnableWebMvc
@EnabletransactionManagement(mode=AdviceMode.PROXY,proxyTargetClass=truE)
@ComponentScan(value="spring.webapp.lojavirtual")
@Configuration
public class WebAppConfig extends WebMvcConfigurerAdapter {
@Override
public void addresourceHandlers(resourceHandlerRegistry registry) {
registry.addresourceHandler("/bootstrap/**").addresourceLOCATIOns("/bootstrap/").setCachePeriod(31556926);
registry.addresourceHandler("/extras/**").addresourceLOCATIOns("/extras/").setCachePeriod(31556926);
registry.addresourceHandler("/jquery/**").addresourceLOCATIOns("/jquery/").setCachePeriod(31556926);
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
DispatcherConfig.java
@Controller
@Import(WebAppConfig.class)
public class DispatcherConfig {
@Bean
public ViewResolver jspResolver() {
InternalresourceViewResolver viewResolver = new InternalresourceViewResolver();
viewResolver.setPrefix("/WEB-INF/jsp/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
}
我想在我的应用程序中添加其他调度程序servlet.我的第一个想法是将以下代码添加到上面的类中:
在WebAppInitializer.java中
像这样的新块,在适当的位置更改名称:
// Create the dispatcher servlet's Spring application context
AnnotationConfigWebApplicationContext dispatcherContext = new AnnotationConfigWebApplicationContext();
dispatcherContext.register(DispatcherConfig.class);
// Register and map the dispatcher servlet
ServletRegistration.Dynamic dispatcher = container.addServlet("dispatcher",new DispatcherServlet(dispatcherContext));
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/");
并添加一个新的类,如DispatcherConfig.java,其名称在上面的代码中选择.
我的问题是:
1)首先,我的方法是添加新的调度程序servlet的正确方法?
2)其次,如果问题1的答案为“是”,我应该在WebAppInitializer中更改哪些名称?
3)在我的控制器中,我如何确定我的请求应该去哪个调度程序servlet?我的控制器使用如下方法调用视图:
@requestMapping(value="view_mapping")
public method() {
ModelAndView mav = new ModelAndView()
mav.setViewName("view_name");
return mav;
}
您的控制器不应该关心它们运行的DispatcherServlet,如果您包含用于检测它的代码(如果您添加另一个,那么您将需要继续修改控制器以解决该问题).
但是,虽然通常可以有多个servlet,但是不需要多个servlet,您可以使用DispatcherServlet的单个实例来处理它.
以上是大佬教程为你收集整理的java – 在spring应用程序中使用多个调度程序servlet全部内容,希望文章能够帮你解决java – 在spring应用程序中使用多个调度程序servlet所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。