java动态代理 其中一个容易忽略的坑

 注意: 我们知道 spring中封装了两种 动态代理方式 一种是jdk动态代理,一种是cglib动态代理


  但是我们需要注意的是 在我们获取动态代理对象的时候  如果我们的目标对象是实现了接口的

(1 ) 那么在底层是默认通过 jdk动态代理创建的 所以这时候我们在注入的时候一定要

                   通过接口接受注入。否则获取不到。

          @Autowired
  private DaoInterface dao;  

  而不可以 
  @Autowired
          private DaoImpl  dao;


  因为创建的代理对象和目标对象是相当于实现了同一个接口


(2 )  cglib是通过创建子级重写父级对象
  所以我们的代理对象是目标对象的子级。
  所以你可以这么写
  @Autowired

          private DaoImpl dao;

        


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值