Spring高级装配--一个接口多个实现类

  • 自动装配的歧义性
  • 仅有一个bean匹配所需的结果时,自动装配才是有效的
  • 如果不仅有一个bean能够匹配结果的话,这种歧义性会阻碍Spring自动装配属性、构造器参数或方法参数
  • Spring无法做出选择;Spring此时别无他法,只好宣告失败并抛出异常
  • 即一个接口有多个实现类装配时运行会报错NoUniqueBeanDefinitionException: No qualifying bean of type
  • 解决方法---指明实现类的优先级@Primary
  • 指明实现类的优先级,注入的时候使用优先级高的实现类
  • 在实现类上标识首选的bean,使用@Primary

  • 解决方法---通过 @Autowired 和 @Qualifier 配合注入

  • 解决方法---使用@Resource 注入,根据默认类名区分

  • 解决方法---使用@Resource 注入,根据@Service 指定的名称区分

猜你喜欢

转载自blog.csdn.net/weixin_59624686/article/details/131126207
今日推荐