Java 从单独的上下文访问spring上下文
我有我的主Spring上下文,它是在我的应用程序启动时创建的。在此上下文中是数据库连接和嵌入式web服务器 然后,嵌入式Web服务器由一个具有自己的Spring上下文的Java 从单独的上下文访问spring上下文,java,spring,embedded-jetty,Java,Spring,Embedded Jetty,我有我的主Spring上下文,它是在我的应用程序启动时创建的。在此上下文中是数据库连接和嵌入式web服务器 然后,嵌入式Web服务器由一个具有自己的Spring上下文的DispatcherServlet启动 我希望从一个DispatcherServlet访问数据库,但由于连接不在其上下文中,因此无法访问 Java/Spring解决这个问题的方法是什么 这是我的web.xml: <servlet> <servlet-name>App</servlet-name
DispatcherServlet
启动
我希望从一个DispatcherServlet访问数据库,但由于连接不在其上下文中,因此无法访问
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();
}
server = new Server(8080);
server.setHandler(new WebAppContext("./webapp", "/"));
server.start();
server.join();
这是JServer.start()方法:
<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();
}
server = new Server(8080);
server.setHandler(new WebAppContext("./webapp", "/"));
server.start();
server.join();
尝试添加
<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>
上下文配置位置
classpath*:maincontext.xml
org.springframework.web.context.ContextLoaderListener
到web.xml
请参见,和教程
,所以问题描述了这两种上下文之间的区别你能发布你正在使用的web.xml吗(如果你确实在使用的话)?呃,我是Java新手,但我99.99%确定这不是我想要的。这不只是再次加载maincontext,而是在servlet中加载。它应该使maincontext成为web上下文(您现在正在DispatcherServlet中加载)的父上下文,从而使web上下文的bean能够访问根上下文的bean。这是一个相当标准的设置,你在多个教程中都会遇到(我自己也有过很多次),你能把我链接到其中一个教程吗?