• spring中集合的注入(list,map等)


    前言

    这种用法是在看别人代码的时候学到的,觉得挺有意思的,记录一下。

    具体用法

    首先新建一个接口

    public interface PlService {
    }
    

    新建两个这个接口的实现类

    @Service
    public class AService implements PlService {
        public AService() {
            System.out.println("----------------------- AService 实例化 ------------------------");
        }
    }
    
    @Service
    public class BService implements PlService {
    
        public BService() {
            System.out.println("------------------------------- BServive 实例化 ------------------------");
        }
    }
    

    在另一个类中注入集合

    我是在一个启动的runner中注入的:

    @Component
    @Slf4j
    public class PlEurekaServerRunner implements ApplicationRunner {
    
        @Autowired
        private List<PlService> services;
    
        @Autowired
        private Map<String, PlService> serviceMap;
    
        @Override
        public void run(ApplicationArguments args) throws Exception {
    
            for (PlService service : services) {
                log.info("++++++++++++++++++++ {}+++++++++++++++++++ ", service.getClass().getName());
            }
    
            for (Map.Entry<String, PlService> entry : serviceMap.entrySet()) {
                log.info("======================= {} : {} ====================", entry.getKey(), entry.getValue());
            }
        }
    
    }
    

    注入的结果

    如果是List的话,会注入该接口的所有实现类;如果是Map的话,key为类名,value为实现类。

  • 相关阅读:
    一句话开启XP_CMDSHELL
    CF14B Young Photographer 题解
    sql 存储过程与函数区别
    sql索引
    分区表中毒,重装系统
    面试
    XML范例的应用(转载)
    数据结构题目
    网页加载速度的方法和技巧
    设计模式分类
  • 原文地址:https://www.cnblogs.com/lwmp/p/13837655.html
Copyright © 2020-2023  润新知