<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Cyh的博客

    Email:kissyan4916@163.com
    posts - 26, comments - 19, trackbacks - 0, articles - 220

    Spring &Hibernate集成

    Posted on 2009-02-16 20:02 啥都寫點 閱讀(205) 評論(0)  編輯  收藏 所屬分類: J2EE

    缺陷:依賴了UserManager

    原理:在Action中取得BeanFactory對象,然后通過BeanFactory獲取業務邏輯對象

    1springstruts依賴庫配置

       * 配置struts

          --拷貝struts類庫和jstl類庫

          --修改web.xml文件來配置ActionServlet

          --提供struts-config.xml文件

          --提供國際化資源文件

       * 配置spring

          --拷貝spring類庫

          --提供spring配置文件

    2、在strutsAction中調用如下代碼取得BeanFatory

    BeanFactoryfactory=WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession.getServletContext())

    3、通過BeanFactory取得業務對象,調用業務邏輯方法

     

    web.xml中做如下配置

    <context-param>

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

    <param-value>classpath*:applicationContext-*.xml,/WEB-INF/applicationContext-*.xml</param-value>  變色部分如果已經在CLASSPATH中配置了可省略

     </context-param>

     

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

      </listener>

    servletConetext的一個助手類,可以讀取它àWebApplicationContextUtils

    Spring &Hibernate集成方案2



    原理:將業務邏輯對象通過spring注入到Action中,從而避免了在Action類中的直接代碼查詢。

    1springstruts依賴庫配置

       * 配置struts

          --拷貝struts類庫和jstl類庫

          --修改web.xml文件來配置ActionServlet

          --提供struts-config.xml文件

          --提供國際化資源文件

       * 配置spring

          --拷貝spring類庫

          --提供spring配置文件

    2、因為Action需要調用業務邏輯方法,所以需要在Action中提供setter方法,讓spring將業務邏輯注入過來

    3、在struts-config.xml文件中配置action

    * <action>標簽中的type屬性需要修改為org.springframework.web.struts.DelegatingActionProxy是一個Action,主要作用是取得BeanFactory,然后根據<action>中的path屬性值到IOC容器中取得本次請求對應的Action

    4、在spring配置文件中需要定義strutsAction,如:

       <bean name=”/login” class=”com.bjsxt.usermgr.actions.LoginAction” scope=”prototype”>

          <property name=”userManager” ref=”userManager”/>

       </bean>

    l       必須使用name屬性,name屬性值必須和struts-config.xml文件中<action>標簽的path屬性值一致

    l       必須注入業務邏輯對象

    l       建議scope設置為prototype,這樣就避免了struts Action的線程安全問題

    struts中應該修改為:

     <action path=”/login”

             Type=”org.springframework.web.struts.DelegatingActionProxy”

             Name=”loginForm”

             Scope=”request”

    </action>

    ApplicationContext中需要做如下修改:

       不能有id屬性 而是改成name屬性(路徑應該和struts中的配置的actionpath相同)

    <bean name=”/login” class=”com.bjsxt.usermgr.action.LoginAction” scope=”prototype”>

     <property name=”userManager” ref=”userManagr”/> //變色部分代表從單實例變成多實例

    </bean>



                                                                                                           --    學海無涯
            

    主站蜘蛛池模板: 久久A级毛片免费观看| 成人网站免费大全日韩国产| 6080午夜一级毛片免费看| 亚洲成色在线综合网站 | 亚洲av午夜福利精品一区人妖| 污视频网站在线观看免费| 可以免费观看的一级毛片| 黄色a三级免费看| 亚洲第一网站男人都懂| 一级一级一级毛片免费毛片| 亚洲乱码中文字幕手机在线| 二级毛片免费观看全程| 中文字幕亚洲图片| 免费的全黄一级录像带| 亚洲av午夜福利精品一区人妖| 免费A级毛片av无码| 亚洲伊人久久大香线蕉| 免费av欧美国产在钱| mm1313亚洲国产精品无码试看 | 亚洲精品无码久久久影院相关影片| 一级A毛片免费观看久久精品| 亚洲色大成网站www永久一区| 嫩草在线视频www免费看| 精品亚洲成a人片在线观看少妇| 国产电影午夜成年免费视频| 亚洲欧洲日本在线观看| 免费人成视频在线观看视频| 成人无码视频97免费| 亚洲国产精品乱码在线观看97| 在线播放免费播放av片| 一级毛片免费视频网站| 亚洲成人精品久久| 久久久久国色AV免费观看性色| 美女尿口扒开图片免费 | 久久精品国产亚洲香蕉| A在线观看免费网站大全| 日韩免费在线中文字幕| 亚洲黄色三级视频| 亚洲AV中文无码乱人伦在线视色| 精品在线免费观看| 欧美日韩亚洲精品|