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

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

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

    隨筆-7  評論-13  文章-2  trackbacks-0

    看到 Shale 的 Spring Integration 文檔的介紹原理,其中順序如下:

    When asked to resolve a variable name, the following algorithm is performed:

    1.Does a bean with the specified name already exist in some scope (request, session, application)? If so, return it.

    2.Is there a standard JavaServer Faces managed bean definition for this variable name? If so, invoke it in the usual way, and return the bean that was created.

    3.Is there configuration information for this variable name in the Spring WebApplicationContext for this application? If so, use it to create and configure an instance, and return that instance to the caller.

    4.If there is no managed bean or Spring definition for this variable name, return null instead.

    這樣的話,只要 Spring 可以控制 Bean 的 Scope 的話,就可以把 Managed-Bean 的配置放到 Spring Bean 里來配置,一方面,我們可以省去了 JSF 的 Managed Bean 的配置,另外的話,我們可以對 JSF 的 Backing Bean 使用 AOP 以及 Spring 提供的很多功能。過去在 JSF-Spring 中嘗試著去控制 Spring Bean 的 Scope,但是做的并不好,現在 Spring 2.0 給我們提供了這樣的能力,經過實驗,證明了這樣是可行的。

    不過如果使用 Spring Bean 以后,會造成使用 Managed Bean 的 JSTL 無法使用,其實 JSTL 本身用起來就時好時壞的,所以影響并不太大了。

    整合起來步驟非常的簡單:

    1. 把 Spring 2.0 的 jar 文件放到 lib 下面,當前使用的是 Spring 2.0 RC3

    2. 因為使用的是 Servlet 2.4,所以要在 web.xml 中加入
        <listener>
            <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
        </listener>

    3. 修改 applicationContext.xml

    注釋或刪掉以下內容:

      <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
      "
    http://www.springframework.org/dtd/spring-beans.dtd ">

    修改 <beans> 為:

      <beans xmlns=" http://www.springframework.org/schema/beans "
           xmlns:xsi="
    http://www.w3.org/2001/XMLSchema-instance "
           xmlns:aop="
    http://www.springframework.org/schema/aop "
           xsi:schemaLocation="
     
    http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans.xsd
      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd ">

    4. 然后就可以按照配置 Spring Bean 的方式來配置 Managed Bean:

        這個是 Request Scope 中的 Bean:
        <bean id="loginBean" class="org.agilejava.icustomer.backingbean.LoginBean"
              scope="request" autowire="byName">
            <aop:scoped-proxy/>
        </bean>

        這個是 Session Scope 中的 Bean:
        <bean id="menuBean" class="org.agilejava.framework.commons.menu.MenuBackingBean"
              scope="session" autowire="byName">
            <aop:scoped-proxy/>
        </bean>

    雖然短期來看,配置上會少寫了一些,因為 autowire="byName",但是從長遠來看,我們可以利用 Spring 的更多功能,比如 AOP 來增強 Backing Bean 的能力,我的第一個設想就是用 AOP 來處理 Backing Bean 中的異常.good

    posted on 2007-11-05 19:43 白切面片 閱讀(329) 評論(0)  編輯  收藏 所屬分類: 軟件工程

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产无人区码卡二卡三卡免费| A级毛片成人网站免费看| 亚洲永久网址在线观看| 亚洲av无码一区二区三区在线播放 | **实干一级毛片aa免费| 97在线观免费视频观看| 亚洲精品成人片在线观看| 日韩va亚洲va欧洲va国产| 亚洲不卡视频在线观看| 国产精品亚洲а∨无码播放不卡 | 亚洲乱码国产一区网址| 国产亚洲精品第一综合| 亚洲精品黄色视频在线观看免费资源| 国产亚洲人成在线影院| 亚洲AV伊人久久青青草原| 亚洲视频在线观看网站| 国内成人精品亚洲日本语音| 又黄又大又爽免费视频| 久久精品国产亚洲av影院 | 中文字幕免费人成乱码中国| 老司机在线免费视频| 亚洲日韩AV一区二区三区中文| 18禁超污无遮挡无码免费网站 | 久久午夜夜伦鲁鲁片无码免费| 大香人蕉免费视频75| 久久青草亚洲AV无码麻豆| 麻豆亚洲AV成人无码久久精品| 中国人xxxxx69免费视频| 亚洲狠狠成人综合网| 5g影院5g天天爽永久免费影院| 99热亚洲色精品国产88| 日韩在线永久免费播放| 亚洲综合AV在线在线播放| 99亚洲乱人伦aⅴ精品| 中国亚洲女人69内射少妇| 亚洲日本在线免费观看| 成a人片亚洲日本久久| 亚洲avav天堂av在线不卡| 国产在线精品一区免费香蕉 | 免费人成视频在线观看网站| 狠狠色伊人亚洲综合网站色|