首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

请问大手:AOP中不能拦截什么方法

2012-01-10 
请教大手:AOP中不能拦截什么方法小弟比较疑惑,面试题[解决办法]final如果是类的方法被标明是final的,则子

请教大手:AOP中不能拦截什么方法
小弟比较疑惑,面试题

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

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

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

应该是这样,就是不知spring是否还可以使用别的代理方式。
[解决办法]
呵呵,偶也一起说说,其实准确说final似乎并不能算,因为jdk动态代理可以去实现他,当然面试时候你这么说,估计也可以过;
不过构造方法的确是不能被拦截的,这是某知道
[解决办法]
那总结下 楼上的回答,不能被overidder的方法不能被拦截.呵呵

热点排行