Spring (二) OOP V.S AOP

  1. 介紹
    1. 這是兩種不一樣的編程思想就比如初中數學中學習的橫縱座標,一種是橫向的一種是縱向,OOP是表明X軸而AOP表明Y軸,以下圖:
    1. 數學幾乎能夠解釋生活中全部的現象,不管是物體運動仍是靜止,也能夠經過數學總結計算出不少規律推進社會發展,數學裏面的思想發放已經滲透到了各行各業,也包括軟件計算機更離不開數學做爲支撐。
  1. 各有千秋
    1. 愛因斯坦之因此是一個偉大的人在於它爲人類作出了重大貢獻,提出了著名的相對論:認爲任何事物都不是獨立的都會相互做用,某一個事物在不一樣環境下結論和用途等都是不一樣的,一樣這個理論也適用於OOPAOP
    1. OOP是面向對象編程是靜態的,而AOP爲面向切面動態的,在程序運行時不須要改變程序代碼,只須要配置一下便可實現增長刪除功能,使得編程變成的簡單化了,代碼更加獨立,耦合性下降,說的更嚴格一些AOP遵循OOP原則,它是OOP的擴展、補充。
  1. 原理
    1. 每一種技術它的原理都是重中之重,瞭解了原理了解了產生、發展、消亡的過程纔會真正理解本質,用AOP這麼一個的詞來表明面向切面編程,也許和我同樣你對AOP仍是有些陌生,可你是否對代理模式也陌生呢,其實,AOP沒有什麼只不過呢用設計模式用的很巧妙,經過代理爲目標對象或類增長新的功能,看起來咱們並無對目標對象寫任何代碼。
    2. Java中最經常使用的兩種實現代理方式是JDKCGLIB,分別是JavaSpring提供給咱們的,SpringIOC容器管理AOP類實現可配置的切向服務。
    3. AOP主要用於處理切向性質的服務,好比日誌記錄、事務管理、權限管理、緩存、安全檢查等等,AOP已經成爲了解決這類問題的一種經常使用解決方案。
    4. 學是爲了用上, 讓咱們來看一下如何用Spring IOC/AOP管理事務。
  1. 應用
    1. 下面這段代碼是物料維護中對事務的配置,每一個系統中配置都是很相似的,會了這種方法在別的系統中也是這樣配置。
    1. 代碼事務配置*.xml
      1. <!-- 配置sessionFactory -->
        		<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        			<property name="configLocation">
        				<value>classpath:hibernate.cfg.xml</value>
        			</property>
        		</bean>
        		<!-- 配置事務管理器 -->
        		<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        			<property name="sessionFactory">
        				<ref bean="sessionFactory"/>
        			</property>
        		</bean>
        		<!-- 哪些類哪些方法使用事務-->
        		<aop:config>
        			<aop:pointcut id="allManagerMethod" expression="execution(* com.bjpowernode.drp.service.*.*(..))"/>
        			<aop:advisor advice-ref="txAdive" pointcut-ref="allManagerMethod"/>
        		</aop:config>
        		
        		<tx:advice id="txAdive" transaction-manager="transactionManager">
        			<tx:attributes>
        				<tx:method name="add*" propagation="REQUIRED"/>
        				<tx:method name="delete*" propagation="REQUIRED"/>
        				<tx:method name="modify*" propagation="REQUIRED"/>
        				<tx:method name="*" propagation="REQUIRED" read-only="true"/>
        			</tx:attributes>
        		</tx:advice>
        

    1. 另外一種實現方式是經過Annotation註解形式,這種方式不用寫配置文件,感興趣的人們能夠試試。
  1. AOP正愈來愈普遍和受到不少編程人員的青睞,可見編程向着簡單方向發展的趨勢。
相關文章
相關標籤/搜索