Spring框架学习【AOP基础】(四)

2014-11-24 03:05:56 · 作者: · 浏览: 8
lter implements ClassFilter, Serializable { //单态模式
  • public static final TrueClassFilter INSTANCE = new TrueClassFilter(); //单态模式的构造方法
  • private TrueClassFilter() { }
  • //切入点过滤匹配类的方法,默认对所有的类都增强 public boolean matches(Class clazz) {
  • return true; }
  • //获取单态模式对象的方法 private Object readResolve() {
  • return INSTANCE; }
  • public String toString() { return "ClassFilter.TRUE";
  • } }

    d.TrueMethodMatcher:

    TrueMethodMatcher作为默认切入点的默认方法匹配器,主要告诉切入点对哪些方法进行增强,源码如下:

    [java] view plaincopy
    1. class TrueMethodMatcher implements MethodMatcher, Serializable { //单态模式
    2. public static final TrueMethodMatcher INSTANCE = new TrueMethodMatcher(); //单态模式构造方法
    3. private TrueMethodMatcher() { }
    4. //不支持运行时调用 public boolean isRuntime() {
    5. return false; }
    6. //切入点匹配方法时调用,默认匹配所有的方法 public boolean matches(Method method, Class targetClass) {
    7. return true; }
    8. //运行时调用将抛出异常 public boolean matches(Method method, Class targetClass, Object[] args) {
    9. throw new UnsupportedOperationException(); }
    10. //获取单态模式对象的方法 private Object readResolve() {
    11. return INSTANCE; }
    12. public String toString() { return "MethodMatcher.TRUE";
    13. } }

      从上面方法匹配器的源码,我们可以看出,切入点对方法进行匹配时不支持运行时的匹配,如果在运行时进行匹配将抛出异常。