测试时为什么注入的是接口而不是实现类

来源:4-1 使用集成测试Service逻辑

马路墩子

2018-06-06 21:08

测试service层时,注入SeckillService而不是SeckillServiceImpl

写回答 关注

2回答

  • qq_極闇桜風_0
    2018-06-07 11:46:50
    已采纳

    这是我在做spring和mybatis整合的时候出现的问题。

    这个问题的根本在于动态代理类生成代理对象。动态代理有两种的实现方式jdk和cglib的方式,这两种方式也是AOP的,实现原理。




    原因所在:出现如果直接注入实现类会出现没有对应的bean,因为我们通过实现类来继承的接口,然而,必须使用jdk提供的动态代理放法,而不使用接口直接对实现类进行注入,则为cglib的注入,而不能既继承接口又使用实现类来注入的方式,这样两种代理类都是没有办法使用的


    共 1 条回复 >

  • qq_極闇桜風_0
    2018-06-07 11:49:00

    可以看jdk的动态代理源代码就知道了

Java高并发秒杀API之Service层

Java实现高并发秒杀API,介绍秒杀业务Service层的设计和实现

59897 学习 · 137 问题

查看课程

相似问题