qq_24873527
qq_24873527
采纳率14.3%
2017-08-18 02:13 阅读 3.9k
已采纳

spring注入的bean无法动态代理

10

图片说明
这里是代理类,已经正确注入了。
图片说明
到这里生成代理对象的时候抛出异常,内容如下。
图片说明
有没有大佬解释下。

补充,这个代理的对象是aop的切点。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

11条回答 默认 最新

  • 已采纳
    lic721 lic721 2019-10-13 12:23

    图片说明

    点赞 1 评论 复制链接分享
  • qq_38005982 我本狂儒 2017-08-18 02:37

    这样,我给你一个简单思路,1、因为是依赖注入,所以在不是公司这样的项目里,可以不声明Dao的实体类,只写一个抽象dao接口
    2、写一个Services接口,和Services实体类
    3、在Services的实体类的Class上写一个@Component("")括号里定义这个实体类的名字!(https://img-ask.csdn.net/upload/201708/18/1503023193_993527.png)
    4、在Services的实体类里要调用Dao的接口,这样Services就和Dao链接了,给private Dao的类名 自定义Dao类名,get,set方法
    5、在set方法上加@Resource 只有这样你的Services才会和Dao接口链接
    6、下面是视图和后台链接层,Dao是类和数据库链接,Services是类和类的链接,你要是这个不明白,我建议你回去学简单的
    7、Controller也就是视图层
    8、在Controller的Class上加一句 @Controller
    9、在类里调用Services的抽象类 在抽象类的set方法上加一句 @Resource(name = "staffOfImp") name是你的services实体类定义的名字

    点赞 1 评论 复制链接分享
  • qq_38005982 我本狂儒 2017-08-18 02:18

    你是不是用的注解的方式?

    点赞 评论 复制链接分享
  • q690080900 举头三尺有宋浩 2017-08-18 02:25

    我看你的报错信息是类型转换 不匹配啊

    点赞 评论 复制链接分享
  • vane11 Vane11 2017-08-18 02:26

    1.贴一下UserService类代码,这样看不知道是接口还是普通类
    2.第一张图没注入成功,注入成功只是你自己的想法
    3.注入的使用和整体代理写的都有问题

    点赞 评论 复制链接分享
  • king2016520 CXY_0 2017-08-18 02:30

    @Autowired 如果你想注入serverice方法 还是在contoller 里面使用 在java类是不允许的
    因为我就遇到过这个坑

    点赞 评论 复制链接分享
  • jerry_player jerry_player 2017-08-18 05:21

    报错说的是类型转换异常,和注入没啥关系吧。得看看userService和proxy.createProxy是不是同一类型,是不是能够强制转化吧。

    给第一张图的userService加上get和set方法

    点赞 评论 复制链接分享
  • MoseSky MoseSky 2017-08-20 05:12

    你用的是jdk动态代理,但是底层怎么是cglib的代理类。

    点赞 评论 复制链接分享
  • MoseSky MoseSky 2017-08-20 05:18

    也有可能是切入点表达是写错了。。jdk的底层是要实现父接口的,如果切入点包含action的话会报错,cglib底层是给搞一个目标类的子类,所以不牵扯父接口的问题,其他的我也看不到实在是不知道还有什么错。

    点赞 评论 复制链接分享
  • qq_37047226 喜剧之王hzj 2017-08-23 03:54

    UserService UserService 你的类名和变量都是大写 冲突了

    点赞 评论 复制链接分享
  • srljolin ShaoRL-Sea 2018-01-09 03:31

    这里有一点浅见:
    1、要使用动态代理设计代码,干嘛要注入bean呢,既然要注入bean就使用静态代理的方式;
    2、createProxy()方法参数黏贴的不全,调用这个方法强转出错,应该是invoke()返回的类型不对吧,我没有深入研究过InvocationHandler接口,出发点不对。仅供参考。

    点赞 评论 复制链接分享

相关推荐