1、第一种方式
借助ServletContextListener
监听器,该监听器可以在Web应用启动时回调自定义方法来启动Spring容器。
Spring提供了一个ContextLoaderListener
,该监听器实现了ServletContextListener
接口,它会在创建时自动加载WEB-INF
下的applicationContext.xml
文件。
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
如果有多个配置文件需要载入,ContextLoaderListener
加载时,会查找名为contextConfigLocation
的初始化参数。
<!-- 指定多个配置文件 -->
<context-param>
<!-- 参数名为contextConfigLocation -->
<param-name>contextConfigLocation</param-name>
<!-- 多个配置文件之间以“,”隔开 -->
<param-value>
/WEB-INF/daoContext.xml,
/WEB-INF/applicationContext.xml
classpath:applicationContext.xml
</param-value>
</context-param>
直接在web.xml
文件中配置创建Spring容器。
利用第三方MVC框架的扩展点,创建Spring容器。
该种方式就是将Struts Action也视为一种Bean交给Spring来进行托管,使用时Struts的配置文件中配置的Action的classs属性不再是具体Action的实现类,而是在Spring配置文件中配置的BeanID,也就是说具体是Action实现类是在Spring的配置文件中进行配置的,Struts的配置文件中的Class属性只是Spring文件中Bean的ID。Struts配置文件如下示例:
<action name="LoginAction" class="loginAction">
<!--登录Action com.simpleworkflow.action.LoginAction-->
<result name="input">/WEB-INF/content/login.jsp</result>
<result name="mgr">/WEB-INF/content/manager/index.jsp</result>
<result name="emp">/WEB-INF/content/employee/index.jsp</result>
<result name="error">/WEB-INF/content/login.jsp</result>
</action>
同时需要在Struts配置文件中加入如下配置:
<struts>
<constant n