5.4测试 Spring AOP面向切面编程 概念

2023-12-04  本文已影响0人  大也

!!!结论 接口getBean 找的是实现类 代理类虽然在ioc中但是没有最终实现方法
Calculator studentController1 = annotationConfigApplicationContext.getBean(Calculator.class);

  1. 情景一
    • bean 对应的类没有实现任何接口
    • 根据 bean 本身的类型获取 bean
      • 测试:IOC容器中同类型的 bean 只有一个

        正常获取到 IOC 容器中的那个 bean 对象

      • 测试:IOC 容器中同类型的 bean 有多个

        会抛出 NoUniqueBeanDefinitionException 异常,表示 IOC 容器中这个类型的 bean 有多个

  2. 情景二
    • bean 对应的类实现了接口,这个接口也只有这一个实现类
      • 测试:根据接口类型获取 bean
      • 测试:根据类获取 bean
      • 结论:上面两种情况其实都能够正常获取到 bean,而且是同一个对象
  3. 情景三
    • 声明一个接口
    • 接口有多个实现类
    • 接口所有实现类都放入 IOC 容器
      • 测试:根据接口类型获取 bean

        会抛出 NoUniqueBeanDefinitionException 异常,表示 IOC 容器中这个类型的 bean 有多个

      • 测试:根据类获取bean

        正常
        4.情景四

原因分析:

5.情景五 cglib 继承 重写方法 切入

jdk代理


image.png

cglib 继承


image.png
上一篇下一篇

猜你喜欢

热点阅读