Spring按类型自动装配注入数组、集合、Map

Spring按类型自动装配注入数组、集合、Map时,是把应用上下文中对应类型的bean装配进集合,而不是直接查找一个对应类型的集合然后注入。以下面这段代码为例:

@Component
public class WmsProtocolFactory {

    @Autowired
    private Map<String, WmsRemoteProtocol> mediaPlayerMap;

    @Autowired
    private WmsRemoteProtocol[] addr;
    @Autowired
    private List<WmsRemoteProtocol> list;

    HashMap<Object,WmsRemoteProtocol> map = Maps.newHashMap();
    public WmsProtocolFactory(List<WmsRemoteProtocol> wmsRemoteProtocolList){
        for(WmsRemoteProtocol wmsRemoteProtocol :wmsRemoteProtocolList){
            map.put(wmsRemoteProtocol.getType(),wmsRemoteProtocol);
        }
    }

    public void printInfo(){
       System.out.println("map----->"+mediaPlayerMap);
   	   System.out.println("数组----->"+addr);
       System.out.println("集合----->"+list);
       System.out.println("定制map----->"+map);
    }
    /**
     * 功能描述:
     * 获取远程调用的具体实现
     *
     * @param:
     * @return:
     * @auther: baojl514
     */
    public WmsRemoteProtocol getProtocol(String chnlCode){
        return map.get(chnlCode);
  }
}

下面是打印出来的各种类型

map----->{infoWmsComp=com.csj.tiger.service.wms.InfoWmsComp@2ba7828b, sharkWmsComp=com.csj.tiger.service.wms.SharkWmsComp@1e686da2, defaultVirtualClient=com.csj.tiger.chnl.routing.DefaultVirtualProtocol@51653509, jmarsWmsComp=com.csj.tiger.jmars.component.impl.JmarsWmsComp@7abe3d53, misComp=com.csj.tiger.mis.component.impl.MisComp@43347199}
数组----->[Lcom.csj.tiger.chnl.routing.WmsRemoteProtocol;@1e5bac73
集合----->[com.csj.tiger.service.wms.InfoWmsComp@2ba7828b, com.csj.tiger.service.wms.SharkWmsComp@1e686da2, com.csj.tiger.chnl.routing.DefaultVirtualProtocol@51653509, com.csj.tiger.jmars.component.impl.JmarsWmsComp@7abe3d53, com.csj.tiger.mis.component.impl.MisComp@43347199]
定制map----->{0=com.csj.tiger.chnl.routing.DefaultVirtualProtocol@51653509, SHARK=com.csj.tiger.service.wms.SharkWmsComp@1e686da2, JMARS=com.csj.tiger.jmars.component.impl.JmarsWmsComp@7abe
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值