AOP - Aspect Oriented Programing,面向切面編程。將封裝好的對象切開,找出其中對多個對象產生影響的公共行爲,並將其封裝爲一個可重用的模塊,這個模塊被命名爲「切面」,切面將那些與業務無關,卻被業務模塊共同調用的邏輯提取並封裝起來,減小了系統中的重複代碼,下降了模塊間的耦合度,同時提升了系統的可維護性。spring
好比:將一大塊包含複製業務邏輯的代碼,經過橫向抽取的方式抽取到一個個獨立的模塊中,好比拆分爲業務邏輯、性能監控以及事務處理。express
Spring AOP在運行期間經過代理方式向目標類織入加強代碼。編程
在Spring項目中配置的事務管理器,就使用到了Spring AOP。性能
<aop:config> <aop:pointcut id="bussinessService" expression="execution(public * com.honglin.service..*.*(..))" /> <aop:advisor pointcut-ref="bussinessService" advice-ref="txAdvice" /> </aop:config> <tx:advice id="txAdvice" transaction-manager="txManager"> <tx:attributes> <tx:method name="find*" read-only="true" /> <tx:method name="add*" propagation="REQUIRED"/> </tx:attributes> </tx:advice>
參考資料:spring AOP在實際項目中的應用spa