| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package cn.com.goldenwater.dcproj.service.impl.system;
- import cn.com.goldenwater.dcproj.service.BisInspObjStrategy;
- import org.apache.commons.collections.map.HashedMap;
- import org.apache.commons.lang.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.context.ApplicationContext;
- import org.springframework.stereotype.Service;
- import java.util.Map;
- /**
- * Created by jinshui on 2020/4/2.
- */
- @Service
- public class BisInspObjFactory {
- @Autowired
- private ApplicationContext applicationContext;
- private static Map<String, BisInspObjStrategy> map = new HashedMap();
- public BisInspObjStrategy createStrategy(String type) {
- if (map == null || map.isEmpty()) {
- //初始化map
- getStrategy();
- }
- if (!map.containsKey(type)) {
- getStrategy();
- }
- return map.get(type);
- }
- private void getStrategy() {
- Map<String, BisInspObjStrategy> tempMap = applicationContext.getBeansOfType(BisInspObjStrategy.class);
- for (BisInspObjStrategy bisInspObjStrategy : tempMap.values()) {
- if (StringUtils.isBlank(bisInspObjStrategy.getType())) {
- continue;
- }
- String[] objTypeArr = bisInspObjStrategy.getType().split(",");
- for (String objType : objTypeArr) {
- if (map.containsKey(objType)) {
- continue;
- }
- map.put(objType, bisInspObjStrategy);
- }
- }
- }
- }
|