JFinal AOP使用

1.AOP

AOP是Aspect Oriented Programming,即面向切面编程。对于某些方法它们会出现在不同场景中,我们可以通过接口的方式来实现此类功能,但是还是比较麻烦。如果使用AOP就会简单很多。在JFinal中,我们会将利用拦截器、注解来实现AOP

2.AOP主要功能

日志记录,性能统计,安全控制,事务处理,异常处理等等wn及扩展

3.AOP主要意图

将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码

4.AOP实现原理

在Java平台上,对于AOP的织入,有3种方式:
编译期:在编译时,由编译器把切面调用编译进字节码,这种方式需要定义新的关键字并扩展编译器,AspectJ就扩展了Java编译器,使用关键字aspect来实现织入;
类加载器:在目标类被装载到JVM时,通过一个特殊的类加载器,对目标类的字节码重新“增强”;
运行期:目标对象和切面都是普通Java类,通过JVM的动态代理功能或者第三方库实现运行期动态织入。

5.AOP实现

1.定义一个拦截器,用于实现重复业务
JFinal AOP使用
2.定义一个主类,用于实现主要业务,并利用注解@Before添加拦截器
JFinal AOP使用
3.利用Enhancer实现一个主类的子类,从而实现了AOP编程
JFinal AOP使用

上一篇:golang nil切片与空切片的区别


下一篇:jfinal与bootstrap的登出实战