关于 Spring AOP 的一个问题

2018-06-10 16:25:58 +08:00
 yestodayHadRain
最近学习 Spring AOP 遇到一个问题,想不明白 各位大佬们帮忙看下:

当前有一个借口两个类, userDao 接口 userDaoImpl 实现类, 还有一个 切面类 Aspect, 在 userDaoImlp 类下 的 save 方法执行前 调用下 Aspect 类下的 log 方法, 然后在测试类中使用, 使用时用的注入的方式 为什么 用 UserDao 接收 spring 给出的类可以,但是用 UserDaoImpl 类型接收就会报错呢?

配置文件中配置的是 userDaoImpl 这个类呀
1030 次点击
所在节点    问与答
4 条回复
yestodayHadRain
2018-06-10 16:28:10 +08:00
另外我打印了下,Spring 的返回对象是 UserDaoImpl 类型的,如果是这个类型的 用这个类型接收不对吗?
watzds
2018-06-10 16:37:04 +08:00
Java 动态代理需要接口的吧
LangInteger
2018-06-10 16:44:46 +08:00
因为默认使用 jdk 实现的代理,是基于被代理对象接口的,可以设置为基于 cglib 的代理,ciglib 采用继承被代理类实现代理。
yestodayHadRain
2018-06-10 20:46:35 +08:00
确实是这样,谢谢两位

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/461932

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX