zoukankan      html  css  js  c++  java
  • Spring实战(六)自动装配的歧义性

      1、Spring进行自动装配时碰到的bean歧义性问题。

      在进行自动装配时,只有仅有一个bean匹配所需结果时,才是可行的。

      如果不仅仅一个bean能够匹配结果,例如一个接口有多个实现,这种歧义性会阻碍Spring自动装配属性、构造器参数或者方法参数。

      (虽然在实际中,这种歧义性问题很罕见,通常所需的接口只有一个实现类。)

     

      2、Spring提供的解决方案

        A. 将可选bean中的某一个设为首选(primary)的bean;

        B. 使用限定符,使得Spring可选的bean减少为一个(only one)。

     

      3、solution A---使用@Primary

      Spring注解:

    @Component
    @Primary
    public class IceCream implements Dessert{...}

      JavaConfig:

    @Bean
    @Primary
    public Dessert iceCream(){
      return new IceCream();  
    }

      XML中:

    <bean id="iceCream" class="xxx.xxx.IceCream" primary="true" />  

     

      4、solution B---限定符@Qualifier("要注入的bean的ID")

    //最简单的用法
    @AutoWired
    @Qualifier("iceCream")
    public void setDessert(Dessert dessert){
      this.dessert=dessert;  
    }

     

      5、创建自定义的限定符(略了…知道有这个功能就行)

  • 相关阅读:
    python的metaclass
    鱼和水的故事
    iOS的QuickTime Plugin
    二进制/十六进制转浮点数的编程(互转类似)
    Android开发常见错误及技巧
    Mac 热键大全
    Java动态程序设计:反射介绍
    注册asp.net 4.0 到iis
    javascript常用判断写法
    将存储过程执行的结果保存到临时表
  • 原文地址:https://www.cnblogs.com/bigbigbigo/p/8368465.html
Copyright © 2011-2022 走看看