java - 如何使用一个根上下文制作两个 AbstractAnnotationConfigDispatcherServletInitializer?
问题描述
我知道我可以通过这种方式写入具有一个根上下文的两个调度程序 servlet:
@Override public void onStartup(ServletContext servletContext) 抛出 ServletException {
// root context
AnnotationConfigWebApplicationContext rootContext =
new AnnotationConfigWebApplicationContext();
rootContext.register(RootConfig.class); // configuration class for root context
rootContext.scan("...service", "...dao"); // scan only some packages
servletContext.addListener(new ContextLoaderListener(rootContext));
// dispatcher servlet 1
AnnotationConfigWebApplicationContext webContext1 =
new AnnotationConfigWebApplicationContext();
webContext1.setParent(rootContext);
webContext1.register(WebConfig1.class); // configuration class for servlet 1
webContext1.scan("...web1"); // scan some other packages
ServletRegistration.Dynamic dispatcher1 =
servletContext.addServlet("dispatcher1", new DispatcherServlet(webContext1));
dispatcher1.setLoadOnStartup(1);
dispatcher1.addMapping("/subcontext1");
// dispatcher servlet 2
...
}
但是我怎么能用 AbstractAnnotationConfigDispatcherServletInitializer 做到这一点?如果不可能 - 为什么我们可以使用两种方法 "getRootConfigClasses" 和 "getServletConfigClasses" ?
解决方案
我想我已经找到了决定——如果我们使用带有 AbstractAnnotationConfigDispatcherServletInitializer 的两个类——这意味着如果我们在其中一个类中定义方法 getRootConfigClasses 中的根类,另一个将返回空数组“{}”的类——第一个根类将是根类对于 DispatcherServlet 的
推荐阅读
- android - Kotlin 1.3.0 不能与 kotlin-stdlib 一起使用
- asp.net-mvc - 使用 NLog 将日志发送到 Logz.io 失败
- javascript - Vue.js - 计算属性未更新 - 子组件
- javafx - JavaFX 不可用,现在怎么办?
- angular - 在 ionic 中处理 web 视图的后退按钮
- sql-server - SQL Server 存储过程评估 JSON_VALUE 超出执行顺序
- android - 可以在安装时(在清单中)请求 Android 普通级别权限吗?
- javascript - 如何将一个数字数组除以另一个数字数组
- ios - TableView 多个单元格不起作用,由于信号 9 而终止
- python-3.x - Python:如何在类中存储数据并继承