小弟比较疑惑,面试题

解决方案 »

  1.   

    这问题问的真有“水平”,知道AOP干嘛的才是正道,你可以这样回答:
    AOP是用在具有横切逻辑的应用场合,如:性能检测、访问控制、事务管理以及日志记录
      

  2.   

    final
    如果是类的方法被标明是final的,则子类无法覆盖。aop在对class拦截的时候,实质上是生成一个代理类,也是被拦截的类的子类。所以如果方法被标明final就无法拦截了
      

  3.   

    确切的说应该是如果一个类既没有实现接口,又被声明为final,那么它的方法是不会被spring拦截的。
    没有实现接口,JDK动态代理不能使用。
    被声明为final,CGLIB不能使用。(当然如果一个类不声明为final,可方法设置为final,同样此方法不能被拦截)应该是这样,就是不知spring是否还可以使用别的代理方式。
      

  4.   

    好像 被反射调用的方法是不能被Spring AOP拦截,具体原因没有深入研究。
      

  5.   

    呵呵,偶也一起说说,其实准确说final似乎并不能算,因为jdk动态代理可以去实现他,当然面试时候你这么说,估计也可以过;
    不过构造方法的确是不能被拦截的,这是某知道
      

  6.   

    那总结下 楼上的回答,不能被overidder的方法不能被拦截.呵呵