熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

反思Spring:由Ruby on Rails想到的[1]

2022-06-13   來源: Java開源技術 

  眾所周知RoR裡面的指導原則有

  第一條是較小的軟件這意味著你編寫較少的程序行程序小就能加速開發錯誤也較少使得程序較容易理解維護和增強對編寫較小程序做出貢獻的Ruby的一個特性就是它假設該架構本身能夠並應該處理元數據

  第二條是對配置的協定原理這意味著Rails不用配置文件而是依靠一些簡單的編程協定讓它通過利用應用程序已有的信息和在運行的數據庫解決它需要知道什麼這個問題

  Spring一個非常靈活的一個框架靈活的同時也造成了一定的復雜性我個人眼中的spring應該從RoR學到的東西應該有不用寫一行xml語句就可以配置好AOP常規的事務管理約定高於配置

  當前spring支持的事務管理配置大體有以下兩種配置方式為了方便舉例子所以借用了javaEE技術專家江南白衣的兩段代碼

  ()spring版本支持的事務管理

  代碼

<bean id=baseTxService class=orgspringframeworktransactioninterceptorTransactionProxyFactoryBean
abstract=true
<property name=transactionManager ref=transactionManager/>
<property name=proxyTargetClass value=true/>
<property name=transactionAttributes
<props>
<prop key=get*>PROPAGATION_REQUIREDreadOnly</prop>
<prop key=find*>PROPAGATION_REQUIREDreadOnly</prop>
<prop key=save*>PROPAGATION_REQUIRED</prop>
<prop key=remove*>PROPAGATION_REQUIRED</prop>
</props>
</property>
<property name=preInterceptors
<list>
<ref bean=methodSecurityInterceptor/>
</list>
</property>
</bean>

<bean id=bookManager parent=baseTxService
<property name=target
<bean class=orgspringsidebookstoreadminmanagerBookManager/>
</property>
</bean>

  () spring開始支持事務管理的新配置

  代碼

<aop:config proxytargetclass=true
<aop:advisor pointcut=execution(*yourpackagename*Manager*()) adviceref=txAdvice/>
<aop:advisor pointcut=execution(*yourpackagename*Managersave()) adviceref=fooAdvice/>
</aop:config><tx:advice id=txAdvice transactionmanager=transactionManager
<tx:attributes>
<tx:method name=save*/>
<tx:method name=remove*/>
<tx:method name=* readonly=true/>
</tx:attributes>
</tx:advice>
<bean id=bookManager class=orgspringsidebookstorecommonsserviceBookManager/>

 

[]  []  


From:http://tw.wingwit.com/Article/program/Java/ky/201311/29081.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.