zoukankan      html  css  js  c++  java
  • spring map获取同类型的bean

    今天看博客怎么减少if else 方法, 才发现spring 还有很多功能我没有用到,以后真的得花时间学学spring,今天学到的东西如下:

    1.定义一个接口 store

    public interface Store {
        void handle();
    }

    2.定义两个类

    @Service("storeA")
    public class StoreA implements Store {
    
        @Override
        public void handle() {
    
        }
    
        @Override
        public String toString() {
            return "StoreA []";
        }
        
        
    }
    @Service("storeB")
    public class StoreB implements Store {
    
        @Override
        public void handle() {
    
        }
    
        @Override
        public String toString() {
            return "StoreB []";
        }
        
    }    

    3.在factory类中的map类型直接注入即可

    @Service
    public class StoreFactory {
        @Autowired
        @Qualifier("storeA")
        private StoreA storeA;
        
        @Autowired
        @Qualifier("storeB")
        private StoreB storeB;
        
        @Autowired
        private Map<String, Store> map = new HashMap<>();//直接对map注入
        
        public void getStore() {
            System.out.println(storeA);
            System.out.println(storeB);
            System.out.println(map);
        }
        
    }

    4.测试

        @Test
        public void testStoreFactory() {
            storeFactory.getStore();
        }

    结果 为 :

    StoreA []
    StoreB []
    {storeA=StoreA [], storeB=StoreB []}

    5.总结

    spring直接可以把同类型的类注入到map中,就可以不用定义工厂类根据需要来进行返回,直接通过map的get方法可以获取需要的类,可以说完美契合策略模式.

  • 相关阅读:
    动画:UIViewAnimationOptions类型
    ReactiveCocoa--RACTuple
    RACSignal的一些常用用法
    神奇的RAC宏
    UITableViewStyleGrouped模式下多余间距
    UITableViewStyleGrouped模式下烦人的多余间距
    上传到 App Store 时出错。
    [iOS]详解调整UIButton的title和image的位置
    规范化目录

  • 原文地址:https://www.cnblogs.com/lishuaiqi/p/11104648.html
Copyright © 2011-2022 走看看