歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Struts2整合Spring方法及原理

Struts2整合Spring方法及原理

日期:2017/3/1 9:50:01   编辑:Linux編程

一、 Struts 2框架整合Spring步驟

1、 復制文件。復制struts2-spring-plugin-x-x-x.jar和spring.jar到WEB-INF/lib目錄下。其中的x對應了Spring的版本號。還需要復制commons-logging.jar文件到WEB-INF/lib目錄下。

2、 配置struts.objectFactory屬性值。在struts.properties中設置struts.objectFactory屬性值:struts.objectFactory = spring

或者在XML文件中進行常量配置:

<struts>

<constant name="struts.objectFactory" value="spring" />

...

</struts>

3、 配置Spring監聽器。在web.xml文件中增加如下內容:

<listener>

<listener-class>

org.springframework.web.context.ContextLoaderListener

</listener-class>

</listener>

4、 Spring配置文件。默認情況下,Spring配置文件為applicationContext.xml,該文件需要保存在Web應用的WEB-INF目錄下。內容示例如下所示:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC

"-//SPRING//DTD BEAN//EN"

"http://www.springframework.org/dtd/spring-beans.dtd">

<beans default-autowire="byName">

<bean id="personManager" class="com.acme.PersonManager"/>

</beans>

開發者實際上可以使用多個Spring配置文件,在web.xml中進行下列設置,從而使Spring的ApplicationContext通過匹配所給定模式的文件來初始化對象:

<!-- 用來定位Spring XML文件的上下文配置 -->

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>

/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml

</param-value>

</context-param>

5、 修改Struts配置文件。Struts 2框架整合Spring框架,需要在Struts配置文件中有所改變,下面是一個示例:

<!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

<include file="struts-default.xml"/>

<package name="default" extends="struts-default">

<action name="foo" class="com.acme.Foo">

<result>foo.ftl</result>

</action>

</package>

<package name="secure" namespace="/secure" extends="default">

<action name="bar" class="bar">

<result>bar.ftl</result>

</action>

</package>

</struts>

該配置文件中定義了兩個Action配置:foo是一個標准的Struts 2框架Action配置,指定了Action實現類為com.acme.Foo;bar對應的class並不存在,那麼框架將在Spring配置文件中查找id屬性為“bar”的定義,該配置文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC

"-//SPRING//DTD BEAN//EN"

"http://www.springframework.org/dtd/spring-beans.dtd">

<beans default-autowire="byName">

<bean id="bar" class="com.my.BarClass" singleton="false"/>

...

</beans>

Copyright © Linux教程網 All Rights Reserved