首页 > 代码库 > 创建Spring容器

创建Spring容器

对于使用Spring的web应用,无须手动创建Spring容器,而是通过配置文件,声明式的创建Spring容器。
在Web应用中,创建Spring容器有如下两种方式:
1、直接在web.xml文件中配置;
2、利用第三方MVC框架的扩展点。

ContextLoaderPlugIn(要导入org.springframework.web.struts-3.0.5.RELEASE.jar包,在struts2.0及以后版本不支持此种方式加载spring)

 

直接在web.xml文件中配置的方式是更常见。
为了让Spring容器随Web应用的启动而启动,有如下两种方式:
1、利用ServletContextListener实现。
2、利用load-on-startup Servlet(ContextLoaderServlet)实现。(spring3.0及以后版本中已经删除ContextLoaderServlet和Log4jConfigServlet)

<servlet>
    <servlet-name>context</servlet-name>
    <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

 

 

 

Spring提供ServletContextListener的一个实现类ContextLoaderListener,该类可以作为Listener使用,
它会在创建时自动查找WEB-INF下的applicationContext.xml文件,
因此如果只有一个配置文件,并且文件名为applicationContext.xml,
则只需在web.xml文件中增加以下配置片段就可以了。

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

 

如果有多个配置文件需要载入,则考虑使用<context-param>元素来确定配置文件的文件名。
ContextLoaderListener加载时,会查找名为contextConfigLocation的初始化参数。
因此配置<context-param>时就指定参数名为contextConfigLocation。
带多个配置文件的web.xml文件如下,多个配置文件之间用“,”隔开。

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>WEB-INF/*.xml,classpath:spring/*.xml</param-value>
    <!--<param-value>classpath:spring*.xml</param-value>-->
</context-param>

 

创建Spring容器