Spring Boot 使用策略模式指定Service实现类
时间:2022-07-23
本文章向大家介绍Spring Boot 使用策略模式指定Service实现类,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
话不多说,直接上代码
编写策略接口类
public interface DemoService {
void doQuery();
}
编写策略实现类
@Service("test1")
@Slf4j
public class Test1ServiceImpl implements DemoService {
@Override
public void doQuery() {
// do something
}
}
@Service("test2")
@Slf4j
public class Test2ServiceImpl implements DemoService {
@Override
public void doQuery() {
// do something
}
}
构建策略工厂, Service自动注入
@Component
public class DemoStrategyFactory {
@Autowired
Map<String, DemoService> DemoServices = new ConcurrentHashMap<>();
public DemoService getDemoService(String component){
DemoService demoService = DemoServices.get(component);
if(demoService== null) {
throw new RuntimeException("策略模式没找到对应实现类");
}
return demoService;
}
}
Controller中直接使用
@Autowired
private DemoStrategyFactory demoStrategyFactory;
@PostMapping("/test")
public void test(@Valid @RequestParam String functionId){
// eg: functionId = "test2"
DemoService demoService = demoStrategyFactory.getDemoService(functionId);
demoService.doQuery();
}
- 2018年AI如何发展?普华永道做出了8点预测 | 报告下载
- 不正之风!机器学习论文里都有哪四大投机取巧的写作手法?
- 前端写一个月的原生 Android 是怎样一种体验?
- 给人挖矿还不自知 电脑已变黑客肉鸡
- 反序列化漏洞屡被黑客利用,危害巨大,代码怎样写才安全?
- Mifa 主题微信编辑器
- Mifa GitHub Pages 主题
- Mifa Design:一个服务于 Markdown 的设计体系
- 未来机器人大脑将获取互联网知识自我学习
- 【架构拾集】: Android 移动应用架构设计
- Dore 混合应用框架 —— 基于 React Native 的混合应用迁移方案
- Android6.0源码分析之View(二)--measure Android6.0源码分析之View(一)
- 程序员,2017年你的技能树上增加了哪些新技能?
- Android6.0源码分析之View(一)
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- spring-boot-route(十七)使用aop记录操作日志
- spring-boot-route(十八)spring-boot-actuator监控应用
- 浅析PHP7的多进程及实例源码
- spring-boot-route(十九)spring-boot-admin监控服务
- Python scrapy爬取小说代码案例详解
- 解决pip install psycopg2出错问题
- PHP开发的文字水印,缩略图,图片水印实现类与用法示例
- spring-boot-route(二十)Spring Task实现简单定时任务
- php+ajax实现商品对比功能示例
- spring-boot-route(二十一)Quartz实现动态定时任务
- Helm仓库的重要变更和v2支持将在11月结束
- ThinkPHP框架整合微信支付之刷卡模式图文详解
- 详解Python直接赋值,深拷贝和浅拷贝
- 利用python下载scihub成文献为PDF操作
- PHP中的Iterator迭代对象属性详解