使用网络在春季加载上下文.xml

2022-08-31 14:16:01

有没有办法在Spring MVC应用程序中使用web.xml加载上下文?


答案 1

来自春季文档

Spring可以很容易地集成到任何基于Java的Web框架中。您需要做的就是在 Web 中声明 ContextLoaderListener.xml并使用 contextConfigLocation 来设置要加载的上下文文件。

这:<context-param>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/applicationContext*.xml</param-value>
</context-param>

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

然后,您可以使用 WebApplicationContext 来获取 Bean 的句柄。

WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(servlet.getServletContext());
SomeBean someBean = (SomeBean) ctx.getBean("someBean");

有关详细信息,请参阅 http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/web/context/support/WebApplicationContextUtils.html


答案 2

您还可以指定相对于当前类路径的上下文位置,这可能更可取

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:applicationContext*.xml</param-value>
</context-param>

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

推荐