国产化驱动经济自主性与科技创新的未来之路
964
2022-11-22
springboot动态调用实现类方式
目录springboot动态调用实现类springboot手动获取实现类
springboot动态调用实现类
定义规则的多种类型
/**
* 数据规则处理类型枚举
*/
public enum RuleType {
MYRULEBYID1,
MYRULEBYID2
}
接口
import java.util.List;
import java.util.Map;
public interface DataRuleParse {
/**
* 获取规则处理的类型
* @return
*/
RuleType getRuleType();
/**
* 根据规则处理类型生成sql
* @return
*/
List
}
实现类,规则类型1
package gds.application.masterdata.DataRuleParse;
import gds.application.common.constants.ConnectorConstants;
import gds.application.common.constants.XmlConfigurationContants;
import gds.application.common.util.ApplicationContextUtil;
import gds.application.masterdata.constants.ConnectDataProcessesConstants;
import gds.application.masterdata.service.impl.BatchExecutionSqlServiceImpl;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Component
public class MYRULEBYID1 implements DataRuleParse{
@Override
public RuleType getRuleType() {
return RuleType.MYRULEBYID1;
}
@Override
public List
//规则1实现方法
return null;
}
实现类,规则类型2
package gds.application.masterdata.DataRuleParse;
import gds.application.common.constants.ConnectorConstants;
import gds.application.common.constants.XmlConfigurationContants;
import gds.application.common.util.ApplicationContextUtil;
import gds.application.masterdata.constants.ConnectDataProceshttp://sesConstants;
import gds.application.masterdata.service.impl.BatchExecutionSqlServiceImpl;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Component
public class MYRULEBYID2 implements DataRuleParse{
@Override
public RuleType getRuleType() {
return RuleType.MYRULEBYID2;
}
@Override
public List
//规则2实现方法
return null;
}
工厂类,调用方法获取具体实现类
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
/**
* 规则转换工厂类
*/
@Component
public class DataRuleParseFactory implements ApplicationContextAware {
private static Map
@Override
public void sethttp://ApplicationContext(ApplicationContext applicationContext) throws BeansException{
Map
dataRuleBeanMap = new HashMap
map.forEach((key, value) -> dataRuleBeanMap.put(value.getRuleType().toString(), value));
}
public static
return (T)dataRuleBeanMap.get(ruleType);
}
}
根据参数获取对应的方法,ruleName为MYRULEBYID1或者MYRULEBYID2
DataRuleParse dataRuleParse= DataRuleParseFactory.getTrafficMode(ruleName);
List
springboot手动获取实现类
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
WebApplicationContext cxt = WebApplicationContextUtils.getWebApplicationContext(sc);
weixinService = (IWeixinService) cxt.getBean("IWeixinService");
qqService = (IQQService) cxt.getBean("IQQService");
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~