AOP及SPRING AOP

今天来说说AOP吧。

更重要的是Spring AOP的应用(刚好完成了)

同性交友网站github地址:https://github.com/michaelssss/SpringAOPDEMO

先说几个基本点

切点

织入

代理模式

 

切点:

每个函数我们当成一个一个的点。如果我们要增强一个函数而又不对原有代码做侵入就需要确定我们是要在函数执行前,执行后(只能在函数的前后而无法干预函数内部的执行,及函数执行是拥有原子性的)

切点就是指你要在什么情况下切入函数执行的流程;

 

织入:

AOP有很多种实现方式,静态的通过CBLib来写二进制代码,动态的可以通过代理模式,如果你的项目不想使用Spring也是可以使用AOP的,参考AspectJ编程;

 

代理模式:

设计模式的一种,用的是Java语言的动态性,可以通过一个Proxy获得不修改原有代码而增强部分代码的功能。

 

需求描述:

为服务器部分接口提供日志记录,要求不影响原有程序执行。

 

这种需求就是典型的AOP的场景,因为要求不影响原有程序执行。那我们直接连原有代码都不改动,就一定不会出现流程错误。

 

同时通过AOP增强了原有代码,既增加了日志记录

 

我们通过注解来简化配置,同时XML一定要引进相关的bean

 

<bean class=”org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator”/>

<bean id=”txManager”

class=”org.springframework.jdbc.datasource.DataSourceTransactionManager”>

<property name=”dataSource” ref=”dataSource”/>

</bean>

 

<tx:annotation-driven transaction-manager=”txManager”/>

同时为了测试方便,引入事务管理器,避免产生垃圾数据。

其他代码因为保密,不能贴了。。。。。=_,=

改天写个小Demo