首页 > 其他分享 >利用@Autowire注入List/Map

利用@Autowire注入List/Map

时间:2023-01-16 01:33:05浏览次数:37  
标签:Map Autowire void List say Bean public

Autowired注解

以往我认知里@Autowire可以注入单个Bean, 但实际上它可将所有继承了相同接口的Bean注入为List. 此外它还可以自动导入{beanName, interface}形式的Map. 话不多说, 直接上代码:

使用后自动导入依赖, 它可注解在接口对应的List上或者value为对象的Map上 ,直接上代码:

public interface BeanInterface {
    public void say();
}

@Component
@Order(1)
public class BeanImplOne implements BeanInterface {
    @Override
    public void say() {
        System.out.println("aaa");
    }
}

@Component
@Order(2)
public class BeanImplTwo implements BeanInterface {
    @Override
    public void say() {
        System.out.println("bbb");
    }
}

编写测试类:

@Component
public class BeanInvoke {
    @Autowired
    List<BeanInterface> list;

    @Autowired
    Map<String, BeanInterface> map;

    @Bean
    public void test() {
        for (BeanInterface beanInterface : list) {
            beanInterface.say();
        }

  
        for (String s : map.keySet()) {
            System.out.println(s + "-->" + map.get(s));
        }
    }
}
------------------------------------
aaa
bbb
beanImplOne-->com.wang.multiBean.BeanImplOne@74ecacc3
beanImplTwo-->com.wang.multiBean.BeanImplTwo@517a2b0
  • Order: 继承了相同接口的实现类对应的Bean被注入的顺序
  • Map的String为Bean的名字

标签:Map,Autowire,void,List,say,Bean,public
From: https://www.cnblogs.com/shmilyt/p/17054565.html

相关文章

  • GO map按某字段排序
    packagemainimport("fmt""sort")typefrequencystruct{charstringfreint}funcfrequencies(sstring)[]frequency{m:=make(map[string]int)f......
  • springboot url中获取所有RequestMapping的URL路径列表集
    springboot项目在做URL权限控制的时候需要获取全部的URL,一个一个去controller中找费时费力,有的权限点的命名和URL有一定的对应关系。如果能用程序获得全部URL,将会省去很......
  • std::map erase
    正常使用只删除一个迭代器时,返回下一个元素的迭代器;此处主要用于记录map删除多个相同元素:erase删除两次同一个迭代器,会崩溃:原因是第一次删除后,该迭代器为野指针,导致......
  • STL----set与unordered_set map 与 unordered_map
    《set与unordered_set》首先介绍一下set:   set的在算法竞赛中主要作用是去重,附带一点可以自动排序的好处 unordered_set与set的主要区别是set是自动排序的......
  • stream().map编译报错
    noinstance(s)oftypevariable(s)RexistsothatvoidconformstoR<R>Stream<R>map(Function<?superT,?extendsR>mapper);根据源码来看,map()必须有......
  • 获取鼠标指针在ListBox中的行位置
    Listbox控件没有提供这个属性值可以调用,这里我写了个完整的演示程序,供大家参考.新建一个工程,在Form1窗体上加上一个ListBox和一个Label.在窗体代码中粘贴以下程序,然后运行即可......
  • Web安全入门与靶场实战(6)- 利用nmap进行主机发现
    下载靶机接下来我们将结合具体的靶机,通过实战来了解shentou测试的每个环节,并对其中所涉及的知识点进行详细介绍。课程中所使用的靶机主要来自VulnHub,这是一个全球知名的开源......
  • java核心技术之 ArrayList应用 【职员薪水管理系统】
    职员薪水管理系统需求如下:/***author:kevin*date:20110-7-15*function:useArrayListtobuildasystemofEmployeeSalaryMangement,*thesystemisusefulformana......
  • nmap没有那么神
    扫描某博客网站,nmap告诉我:OSdetails:Tomato1.28(Linux2.4.20),Tomatofirmware(Linux2.6.22),SonyEricssonU8iVivazmobilephone移动时代也不至于拿手机当W......
  • Java基础教程:ArrayList入门
    1ArrayList类概述什么是集合提供一种存储空间可变的存储模型,存储的数据容量可以发生改变ArrayList集合的特点底层是数组实现的,长度可以变化泛型的使用用于约束集合中存储......