本章节的动态代理增强了代理类中所有的实现方法
// 这是我的公共接口
public interface ILang {
void use();
void test();
}
// 实现类
public class Eng implements ILang{
@Override
public void use() {
System.out.println("use English");
}
@Override
public void test() {
System.out.println("英文测试");
}
}
当我通过课程中JDK的动态代理实现方法增强后,两个方法都被增强了,这明显与springAOP中的增强不同,spring中只增强目标方法
问题描述:
我想深入的了解下spring它是怎么只增强目标方法呢
28
收起
正在回答 回答被采纳积分+1
2回答
好帮手慕小班
2021-07-25 11:57:54
同学你好,1、使用代理类分别调用了两个方法,那就是对调用方法实现了增强。
通过代理类调用方法,实现了方法的增强,调用了几个方法就实现了对几个方法的增强。
2、spring-aop是怎么用基于JDK动态代理实现对目标方法的增强?
在spring-aop中,参考课程中案例,在原始代码中调用了creatUser方法(而且接口UserService中有creatUser方法,所以每个实现类中都要实现creatUser方法)
所以在对应在自动生成的代理类中,会对这个creatUser方法进行增强。
如上所示原理,使用代理类调用了这个方法,那就是对调用方法实现了增强,如果不想实现对它的增强,同学不使用代理类调用方法就可以,比如
祝学习愉快~
java工程师2020版
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星