CONAN ZONE

          你越掙扎我就越興奮

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            0 Posts :: 282 Stories :: 0 Comments :: 0 Trackbacks
          在Struts2中整合Spring的IoC支持是一件十分簡單的事情。讓我們一步一步來實(shí)現(xiàn):
          1)復(fù)制struts2-spring-plugin-x-x-x.jar和相應(yīng)的spring.jar到/WEB-INF/lib目錄下。
          2)在struts.properties中設(shè)置struts.objectFactory屬性值
          struts.properties
          struts.objectFactory = spring
                      
          或者是在XML文件中進(jìn)行常量配置
          struts.xml
          <struts>
                             <constant name="struts.objectFactory" value="spring" />
                      </struts>
                      
          3)配置Spring監(jiān)聽器
          web.xml
          <listener>
                             <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
                      </listener>
                      
                      
          通過Spring配置來注冊對象
          applicationContext.xml
          <?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>
                      
          當(dāng)然你也可以擁有更多的Spring配置文件。在web.xml中進(jìn)行下列設(shè)置,從而使Spring的ApplicationContext通過匹配所給定模式的文件來初始化對象
          <!-- 用來定位Spring XML文件的上下文配置 -->
                      <context-param>
                             <param-name>contextConfigLocation</param-name>
                             <param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml</param-value>
                      </context-param>
                      
                      
          4)修改你的Struts配置文件
          struts.xml
          <!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>
                      
          默認(rèn)情況下,Spring從下面的文件中尋找為bar所做的配置
          applicationConext.xml
          <?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>
                      
          5)好了,現(xiàn)在你的Struts2和Spring就能正常的一起工作了。有幾個(gè)配置技術(shù)點(diǎn)需要詳細(xì)說明下:裝配模式。你可以通過設(shè)置修改struts.properties中下列屬性的值來改變裝配模式。
          struts.objectFactory.spring.autoWire = type
                      
          該參數(shù)可供選擇的設(shè)置值有
          name 按照你的action的屬性的名字和Spring里的bean的名字匹配,如果匹配就自動(dòng)裝配。這是缺省的
          type 按照你的action的屬性的類型,在Spring注冊的bean中查找,如果相同就自動(dòng)裝配。這需要你在Spring中僅注冊了一個(gè)此類型的bean
          auto Spring會(huì)試圖自動(dòng)監(jiān)測來找到最好的方法自動(dòng)裝配你的action
          constructor Spring會(huì)自動(dòng)裝配bean的構(gòu)造函數(shù)的參數(shù)
          是否使用類緩存。你可以通過設(shè)置修改struts.properties中下列屬性的值來改變是否使用Spring自身的類緩存機(jī)制。可以設(shè)定的值為true或false,默認(rèn)為true。
          struts.objectFactory.spring.useClassCache = false
                      
          posted on 2008-06-22 19:00 CONAN 閱讀(287) 評(píng)論(0)  編輯  收藏 所屬分類: Struts2/WebworkSpring
          主站蜘蛛池模板: 张家界市| 吉林省| 青龙| 大港区| 莆田市| 乌什县| 满洲里市| 波密县| 青龙| 固安县| 樟树市| 宜春市| 抚州市| 磐石市| 万全县| 潜山县| 凉城县| 西城区| 定日县| 蓬溪县| 东阿县| 常山县| 岳普湖县| 湟源县| 贺州市| 惠州市| 金坛市| 元朗区| 肥东县| 横山县| 浦江县| 仁怀市| 陈巴尔虎旗| 通道| 梁山县| 云梦县| 西贡区| 连江县| 安庆市| 庆安县| 黄骅市|