4.6 Enhancer、Duang
Enhancer、Duang 用来对目标进行增强,让其拥有AOP的能力。以下是代码示例:
- public class TestMain{
- public void main(String[] args) {
- // 使用Duang.duang方法在任何地方对目标进行增强
- OrderService service = Duang.duang(OrderService.class);
- // 调用payment方法时将会触发拦截器
- service.payment(…);
-
- // 使用Enhancer.enhance方法在任何地方对目标进行增强
- OrderService service = Enhancer.enhance(OrderService.class);
- }
- }
Duang.duang()、Enhancer.enhance()与Controller.enhance()系方法在功能上完全一样,她们除了支持类增强以外,还支持对象增强,例如duang(new OrderService())以对象为参数的用法,功能本质上是一样的,在此不再赘述。
使用Duang、Enhancer类可以对任意目标在任何地方增强,所以JFinal的AOP可以应用于非web项目,只需要引入jfinal.jar包,然后使用Enhancer.enhance()或Duang.duang()即可极速使用JFinal的AOP功能。
< 4.5 Interceptor的触发
4.7 Routes级别拦截器 >
原文: http://www.jfinal.com/doc/4-6