从单独的上下文访问spring上下文

时间:2014-04-16 11:38:39

标签: java spring embedded-jetty

我的主要Spring上下文是在我的应用程序启动时创建的。在此上下文中是数据库连接和嵌入式Web服务器。

然后使用具有自己的Spring Context的DispatcherServlet启动嵌入式Web服务器。

从其中一个DispatcherServlets,我希望访问数据库,但由于连接不在其上下文中,我不能。

解决此问题的Java / Spring方法是什么?

这是我的 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>

这是入口点主要方法

try (ConfigurableApplicationContext context = new GenericXmlApplicationContext("maincontext.xml")) {

    JServer server = context.getBean(JServer.class);
    server.start();
}

这是 JServer.start()方法

server = new Server(8080);        
server.setHandler(new WebAppContext("./webapp", "/"));
server.start();
server.join();

1 个答案:

答案 0 :(得分:0)

尝试添加

<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:maincontext.xml</param-value> <!-- or wherever else you have the maincontext.xml file-->
</context-param>

<listener>
   <listener-class>
      org.springframework.web.context.ContextLoaderListener
   </listener-class>
</listener>

web.xml

请参阅thisthisthis教程。

Thisthisthis SO问题描述了两种情境之间的差异