springboot如何动态调用实现类
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,这篇文章主要介绍了springboot如何动态调用实现类,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。springboot动态调用实现
千家信息网最后更新 2025年02月04日springboot如何动态调用实现类
这篇文章主要介绍了springboot如何动态调用实现类,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
springboot动态调用实现类
定义规则的多种类型
/** * 数据规则处理类型枚举 */public enum RuleType { MYRULEBYID1, MYRULEBYID2}
接口
import java.util.List;import java.util.Map; public interface DataRuleParse { /** * 获取规则处理的类型 * @return */ RuleType getRuleType(); /** * 根据规则处理类型生成sql * @return */ ListgetSQl( Map paramMap);}
实现类,规则类型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; @Componentpublic class MYRULEBYID1 implements DataRuleParse{ @Override public RuleType getRuleType() { return RuleType.MYRULEBYID1; } @Override public ListgetSQl( Map paramMap) { //规则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.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; @Componentpublic class MYRULEBYID2 implements DataRuleParse{ @Override public RuleType getRuleType() { return RuleType.MYRULEBYID2; } @Override public ListgetSQl( Map paramMap) { //规则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; /** * 规则转换工厂类 */@Componentpublic class DataRuleParseFactory implements ApplicationContextAware { private static MapdataRuleBeanMap; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException{ Map map = applicationContext.getBeansOfType(DataRuleParse.class); dataRuleBeanMap = new HashMap (); map.forEach((key, value) -> dataRuleBeanMap.put(value.getRuleType().toString(), value)); } public static T getTrafficMode(String ruleType) { return (T)dataRuleBeanMap.get(ruleType); }}
根据参数获取对应的方法,ruleName为MYRULEBYID1或者MYRULEBYID2
DataRuleParse dataRuleParse= DataRuleParseFactory.getTrafficMode(ruleName); ListsqlList=dataRuleParse.getSQl(paramMap);
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");
感谢你能够认真阅读完这篇文章,希望小编分享的"springboot如何动态调用实现类"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
规则
类型
方法
篇文章
动态
处理
工厂
价值
兴趣
参数
同时
多种
手动
接口
数据
更多
朋友
知识
编带
行业
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
泉州市中小学网络安全教育
云服务器可以用企业网站么
网络安全互联网软件
服务器在下载过程中错误
科雷服务器在中国么
网络安全领导组工作
数据库与动态网页链接步骤
暗黑2.61数据库
网络安全法什么时候开始及实施
多台服务器线程安全
dede安装的数据库名称
什么是软件开发中的瀑布模型
攀枝花市艺峰互联网科技
电子口岸 安全数据库
服务器上的cpu哪里买
西安软件开发的公司有哪些
微信一直安全加载数据库
std 什么数据库
网络安全行业发展心得
软件开发较好的3b学校
苹果与服务器无法安全问题
车载网络技术设计的字符
云服务器设置多大合适
网络安全重点大学排名
20世纪网络技术
php 跨服务器
湖南省极闪网络技术
浙江橘子红了网络技术公司
如何防止数据库篡改
医疗信息化软件开发语言