James 5 年 前
コミット
0d85ce2d81
1 ファイル変更10 行追加18 行削除
  1. 10 18
      src/main/java/com/jfinal/aop/Aop.java

+ 10 - 18
src/main/java/com/jfinal/aop/Aop.java

@@ -28,9 +28,9 @@ package com.jfinal.aop;
  *    而后者先要使用 Class 去创建对象,创建完对象以后对该对象之中的属性进行注入。
  *    简单一句话:get(...) 比 inject(...) 多了一个目标对象的创建过程
  *    
- * 4:是否要 singleton 与 enhance 根据 AopManager.me().setSingleton(...)、AopManager.me().setEhnace(...) 配置来操作
+ * 4:AopManager.me().setSingleton(...) 用于配置默认是否为单例
  * 
- * 5:在目标类上使用注解 Singleton 与注解 Enhance 可以覆盖掉上面的默认配置
+ * 5:在目标类上使用注解 Singleton 可以覆盖掉上面 setSingleton(...) 方法配置的默认值
  * 
  * 
  * 基本用法:
@@ -56,22 +56,17 @@ package com.jfinal.aop;
  * 2:只进行注入,对象自己创建
  *    Service srv = Aop.inject(new Service());
  *    srv.doIt();
- *    Aop.inject(...) 会对 OtherService otherSrv 进行注入,并且对 otherSrv 进行 ehnace,
+ *    由于 Service 对象是 new 出来的,不会被 AOP 代理,所以其 doIt() 方法上的 Aaa 拦截器并不会生效
+ *    Aop.inject(...) 会对 OtherService otherSrv 进行注入,并且对 otherSrv 进行 AOP 代理,
  *    所以 OtherService.doOther() 方法上的 Bbb 拦截器会生效
  *    
  * 3:创建对象并注入
  *    Service srv = Aop.get(Service.class);
  *    srv.doIt();
  *    Aop.get(...) 用法对 OtherService otherSrv 的处理方式完全一样,在此基础之上 Service 自身也会被
- *    enhance,所以 doIt() 上的 Aaa 拦截器会生效,而 Aop.inject(...) 用法下 Aaa 拦截器不起用用
- * 
- * 4:以上两点中的 enhance 还取决于配置
- *    AopManager.me().setEnhance(false) 配置以后,只注入对象,但被注入对象不进行 enhance, Aaa、Bbb 拦截器都不会生效
- *    
- *    
- * 注意:后续的 jfinal 版本将考虑根据目标类是否配置了拦截器进行增强的新设计,可能会去除与 enhance 有关的配置与代码
- *      所以与 enhance 有关的配置已被 @Deprecated,不建议使用
+ *    AOP 代理,所以 doIt() 上的 Aaa 拦截器会生效
  * 
+ * 4:小结:对象的创建交给 Aop 而不是自己 new 出来,所创建的对象才能被 AOP 代理,其上的拦截器才能生效
  * 
  * 
  * 高级用法:
@@ -81,17 +76,14 @@ package com.jfinal.aop;
  * 
  * 2:被注入对象默认是 singleton 单例,可以通过 AopManager.me().setSingleton(false) 配置默认不为单例
  * 
- * 3:被注入对象默认会被 enhance 增强,可以通过 AopManager.me().setEnhance(false) 配置默认不增强
- * 
- * 4:可以在目标类中中直接配置注解 Singleton 与注解 Enhance:
+ * 3:可以在目标类中中直接配置注解 Singleton:
  *    @Singleton(false)
- *    @Enhance(false)
  *    public class MyService {...}
  *    
- *    注意:以上代码中的注解会覆盖掉 2、3 中 setSingleton()/setEnhance() 方法配置的默认值
+ *    注意:以上代码中的注解会覆盖掉 2 中 setSingleton() 方法配置的默认值
  * 
- * 5:如上 2、3、4 中的配置,建议的用法是:先用 /setSingleton()/setEnhance() 配置大多数情况,然后在个别
- *    违反上述配置的情况下使用 Singleton 注解与 Enhance 注解来覆盖默认配置,这样可以节省大量代码
+ * 4:如上 2、3 中的配置,建议的用法是:先用 setSingleton() 配置大多数情况,然后在个别
+ *    违反上述配置的情况下使用 Singleton 注解来覆盖默认配置,这样可以节省大量代码
  */
 public class Aop {