時光如水

          我心跳動
          posts - 6, comments - 10, trackbacks - 0, articles - 4
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          2006年5月16日

          AOP配置
          1. 創建增強advice
          2. 用ProxyFactoryBean配置增強advice或增強器advisor(增強和切入點組合)


          大多數Spring自帶的切入點都有一個對應的PointcutAdvisor,這樣方便在一個地方定義切入點和通知
          ???????????????????????????NameMatchMethodPointcut-->NameMatchMethodPointcutAdvisor增強器
          ???????靜態切入點??? RegexMethodPointcut-->RegexMethodPointcutAdvisor增強器
          切入點??
          ???????動態切入點??? ControlFlowPointcut


          AOP常見例子:
          Spring配置文件
          <bean name="/searchSubmit" class="ca.nexcel.books.actions.SearchSubmit">
          ?<property name="bookService">
          ??<ref bean="bookService"/>
          ?</property>
          </bean>
          <bean name="logger" class="ca.nexcel.books.interceptors.LoggingInterceptor"/> |(1)
          <!-- AutoProxies -->
          <bean name="loggingAutoProxy" class="org.springframework.aop.framework.autoproxy.
          ?BeanNameAutoProxyCreator"> |(2)
          ???? <property name="beanNames">
          ?<value>/searchSubmit</valuesgt; |(3)
          ???? </property>
          ???? <property name="interceptorNames">
          ?<list>
          ???? <value>logger</value> |(4)
          ?</list>
          ???? </property>
          </bean>
          其中(1)注冊攔截器
          ????? (2)創建了一個 bean名稱自動代理,它描述如何應用攔截器。
          ????? (3)將Struts動作注冊為將被攔截的bean。如果您想要攔截其他的Struts 動作,則只需要在 "beanNames" 下面創建附加的<value>標記
          ????? (4)執行的攔截器bean的名稱

          posted @ 2006-05-16 16:41 qiqijava 閱讀(595) | 評論 (0)編輯 收藏

          ?

          兩個主要容器

          BeanFactory?????????????????? XmlBeanFactory???????????????????????????????

          ??????????????????????????????????? FileSystemXmlApplicationContext

          ApplicationContext?????????? ClassPathXmlApplicationContext

          ??????????????????????????????????? XmlWebApplicationContext

          區別:

          BeanFactory????? 延遲載入所有Bean,直到getBean()被調用才創建Bean

          ApplicationContext 啟動后加載所有Bean

          ?

          Bean生命周期:BeanFactory容器

          ?

          實例化

          ? 設置屬性

          ??? 調用BeanNameAwaresetBeanName()方法

          ?????? 調用BeanFactoryAwaresetBeanFactory()方法

          ????????? 調用ApplicationContextAwaresetApplicationContext()方法(如果容器為ApplicationContext)

          ????????? 調用BeanPostProcessor的預初始化方法

          ???????????? 調用InitializingBeanafterPropertiesSet()方法

          ???????????? 調用定制的初始化方法(init-method參數配置的方法)

          ????????? 調用BeanPostProcessor的后初始化方法

          至此Bean可以被使用

          ?

          調用DisposableBeandestroy()方法

          調用定制的銷毀方法(destroy-method參數配置的方法)

          至此Bean被銷毀

          ?

          BeanFactoryPostProcessor例子

          1. PropertyPlaceholderConfigurer

          ??? 從多個外部屬性文件中載入屬性,并使用這些屬性替換占位符變量

          <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

          ??? <property name="locations">

          ??????? <list>

          ?<value>WEB-INF/mail.properties</value>

          ?<value>WEB-INF/jdbc.properties</value>

          ??????? </list>

          ???? </property>

          </bean>

          1. CustomEditorConfigurer

          ??? 注冊定制的java.bean.PropertyEditor實現,用它把裝配的屬性轉化為其他類型,可使用String設置給一個非String屬性

          posted @ 2006-05-16 16:38 qiqijava 閱讀(541) | 評論 (0)編輯 收藏

          便利的實現

          模板方法:

          ????? 將流程中的可變部的具體實現委托給一個接口,這個接口的不同實現定義了可變部分的具體實現

          Spring 把數據訪問流程中的固定部分與可變部分分開,分別映射成兩個類:模板 Template ,回調 Callback ,模板管理流程的固定部分,回調處填寫實現細節

          ?

          DAO 模板

          ?

          1. 準備資源

          2. 啟動事務

          5. 提交 / 回滾事務

          6. 關閉資源和處理異常

          DAO 回調

          ?

          ?

          3. 在事務中執行

          4. 返回數據

          DAO 支持類

          ?

          ???? 繼承

          關聯

          ?

          ?

          posted @ 2006-05-16 16:36 qiqijava 閱讀(687) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 兴隆县| 清苑县| 柳州市| 成安县| 武平县| 邛崃市| 西青区| 抚顺市| 三门县| 娄底市| 安西县| 堆龙德庆县| 绵阳市| 麦盖提县| 安新县| 称多县| 区。| 梁河县| 洞口县| 金华市| 贺兰县| 南川市| 烟台市| 奇台县| 普定县| 集安市| 甘泉县| 象山县| 康马县| 绥化市| 永城市| 巴彦县| 拉萨市| 时尚| 绩溪县| 蓝山县| 江孜县| 黔东| 永清县| 任丘市| 屯留县|