spring map获取同类型的bean
Posted lishuaiqi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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方法可以获取需要的类,可以说完美契合策略模式.
以上是关于spring map获取同类型的bean的主要内容,如果未能解决你的问题,请参考以下文章
Spring boot集成Redis—RedisTemplate的使用来存储Map集合