V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
yestodayHadRain
V2EX  ›  问与答

关于 Spring AOP 的一个问题

  •  
  •   yestodayHadRain · 2018-06-10 16:25:58 +08:00 · 1083 次点击
    这是一个创建于 2377 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近学习 Spring AOP 遇到一个问题,想不明白 各位大佬们帮忙看下:

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

    配置文件中配置的是 userDaoImpl 这个类呀
    4 条回复    2018-06-10 20:46:35 +08:00
    yestodayHadRain
        1
    yestodayHadRain  
    OP
       2018-06-10 16:28:10 +08:00
    另外我打印了下,Spring 的返回对象是 UserDaoImpl 类型的,如果是这个类型的 用这个类型接收不对吗?
    watzds
        2
    watzds  
       2018-06-10 16:37:04 +08:00 via Android
    Java 动态代理需要接口的吧
    LangInteger
        3
    LangInteger  
       2018-06-10 16:44:46 +08:00 via Android
    因为默认使用 jdk 实现的代理,是基于被代理对象接口的,可以设置为基于 cglib 的代理,ciglib 采用继承被代理类实现代理。
    yestodayHadRain
        4
    yestodayHadRain  
    OP
       2018-06-10 20:46:35 +08:00
    确实是这样,谢谢两位
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1070 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:27 · PVG 02:27 · LAX 10:27 · JFK 13:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.