我希望我的嵌入式jetty实例中存在servlet的上下文,以便在应用程序入口点static main()
中创建根应用程序上下文的父上下文。
以下是入口点static main()代码:
try (ConfigurableApplicationContext context = new GenericXmlApplicationContext("maincontext.xml")) {
// Setup lots of things here like database connection
JServer server = context.getBean(JServer.class);
server.start(); // Start the embedded jetty server and join()
}
这是 JServer.start()代码:
server = new Server(8080);
server.setHandler(new WebAppContext("./webapp", "/"));
server.start();
server.join();
以下是 web.xml :
<servlet>
<servlet-name>App</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/jettycontext.xml</param-value>
</init-param>
</servlet>
以下是根上下文 maincontext.xml :
<context:component-scan base-package="com.package">
<context:exclude-filter type="regex" expression="com\.package\.webapp\.*" />
</context:component-scan>
这是调度程序servlet jettycontext.xml :
<context:component-scan base-package="com.package.webapp" />
<mvc:annotation-driven/>
我希望root maincontext.xml中存在的数据库连接可以从servlet上下文jettycontext.xml访问,因此父子关系。
我的直觉是我需要扩展Dispatcher Servlet来自行处理,但我不确定这是否是最佳方式。