日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Terasoluna學習手記之配置文件applicationContext.xml

 昵稱9376223 2012-04-05

一般而言,Terasoluna特指Terasoluna For Java版。該框架集合了Spring,Struts 1.0以及Ibatis三個框架,并進行了一定程度的擴展(如對輸入文字提交時進行的驗證)。該框架進一步進行了封裝,使得開發(fā)人員更加注重于業(yè)務(wù)邏輯的編寫(Terasoluna中成為Blogic)。

 

applicationContext.xml,全局配置文件。其中包含了

1.Controller的注入,用來進行表單提交時的攔截,如權(quán)限不夠URL是非法的情形,則會進行錯誤的處理。其中需要注入的bean是由開發(fā)者自己實現(xiàn)的接口jp.terasoluna.fw.web.thin.AuthenticationController。

2.DataSource相關(guān)Bean的注入。若使用WTP模式進行DataSource的指定,則需要在META-INF/context.xml中進行配置;若使用Tomcat或WebLogic下JDBC的連接方式,則需按一下方式進行配置。

<bean id="TerasolunaSampleDataSource"
        class="org.springframework.jndi.JndiObjectFactoryBean">
     <property name="jndiName">
       <!-- Tomcat  -->
       <!--<value>java:comp/env/jdbc/TerasolunaSampleDataSource</value>-->
       <!-- Weblogic  -->
       <!--<value>jdbc/TerasolunaSampleDataSource</value>-->
     </property>
    </bean>

3.事務(wù)管理器的注入。具體參照一下,需要關(guān)聯(lián)DataSource。

// 事務(wù)管理器的創(chuàng)建

<bean id="transactionManager"
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource">
            <ref bean="TerasolunaSampleDataSource"/>
        </property>
    </bean>

 

// 對需要進行事務(wù)管理的處理進行設(shè)置

<bean id="attrSource"
      class="org.springframework.transaction.interceptor.NameMatchTransactionAttributeSource">
    <property name="properties">
      <props>
        <prop key="execute*">PROPAGATION_REQUIRED,-java.lang.Exception</prop>
        <prop key="insert*">PROPAGATION_REQUIRED,-java.lang.Exception</prop>
        <prop key="update*">PROPAGATION_REQUIRED,-java.lang.Exception</prop>
        <prop key="delete*">PROPAGATION_REQUIRED,-java.lang.Exception</prop>
        <prop key="select*">PROPAGATION_REQUIRED,readOnly,-java.lang.Exception</prop>
      </props>
    </property>
  </bean>

事務(wù)處理的類是由Spring提供的。

4.事務(wù)管理器攔截設(shè)定。

<bean id="transactionInterceptor"
      class="org.springframework.transaction.interceptor.TransactionInterceptor">
    <property name="transactionManager">
      <ref bean="transactionManager"/>
    </property>
    <property name="transactionAttributeSource">
      <ref local="attrSource"/>
    </property>
  </bean>

 

// 攔截的方法設(shè)定。
  <tx:advice id="transactionInterceptor" >
    <tx:attributes>
      <tx:method name="execute*" propagation="REQUIRED" rollback-for="java.lang.Exception"/>
      <tx:method name="insert*"  propagation="REQUIRED" rollback-for="java.lang.Exception"/>
      <tx:method name="update*"  propagation="REQUIRED" rollback-for="java.lang.Exception"/>
      <tx:method name="delete*"  propagation="REQUIRED" rollback-for="java.lang.Exception"/>
      <tx:method name="select*"  propagation="REQUIRED" rollback-for="java.lang.Exception" read-only="true"/>
    </tx:attributes>
  </tx:advice>

5.輸出日志的設(shè)定。

6.事務(wù)管理的自動代理AutoProxy的設(shè)定。

    <bean id="autoProxy"
      class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
      <property name="interceptorNames">
      <list>
        <idref local="transactionInterceptor"/>
      </list>
      </property>
       <property name="beanNames">
         <list>
            <value>*DAO</value>
         </list>
       </property>
    </bean>

7.AOP設(shè)定。

    <aop:config>
        <aop:pointcut id="daoBeans" expression="bean(*DAO)"/>
        <aop:advisor
             pointcut-ref="daoBeans"
             advice-ref="transactionInterceptor"/>
        <aop:advisor
             pointcut-ref="daoBeans"
             advice-ref="debugInterceptor"/>
    </aop:config>

8.Ibatis相關(guān)設(shè)定。

    <bean id="dataSource"
      class="org.apache.commons.dbcp.BasicDataSource"
      destroy-method="close">
      <property name="driverClassName"
       value="oracle.jdbc.OracleDriver" />
      <property name="url"
      value="jdbc:oracle:thin:@172.20.2.53:1521:yum" />
      <property name="username" value="yum" />
      <property name="password" value="yum" />
      <property name="poolPreparedStatements" value="true" />
      <property name="defaultAutoCommit" value="false" />
      <!-- property name="maxActive" ref="threadSize"/ -->
     </bean>
     // Ibatis配置文件

     <bean id="sqlMapClient"
         class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
         <property name="configLocation" value="WEB-INF/sqlMapConfig.xml">
         </property>
         <property name="dataSource">
           <ref bean="dataSource"/>
         </property>
     </bean>

     9.應(yīng)用程序中所常用到的DAO的注入。

     <bean id="queryDAO"
        class="jp.terasoluna.fw.dao.ibatis.QueryDAOiBatisImpl">
        <property name="sqlMapClient"><ref local="sqlMapClient"/></property>
     </bean>
     <bean id="updateDAO"
         class="jp.terasoluna.fw.dao.ibatis.UpdateDAOiBatisImpl">
        <property name="sqlMapClient"><ref local="sqlMapClient"/></property>
     </bean>
     <bean id="spDAO"
         class="jp.terasoluna.fw.dao.ibatis.StoredProcedureDAOiBatisImpl">
        <property name="sqlMapClient"><ref local="sqlMapClient"/></property>
     </bean>

     綜上,applicationContext.xml中配置到的bean全是整個工程所需要的共通的bean,其實質(zhì)仍然是一個Spring的注入配置文件。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約