适配器模式案例

embedded/2025/1/16 9:17:11/

如果在这样的结构中

我们在Controller中注入,但我们后续需要修改Oss时,比如从minioService改成AliyunService时,需要改动的代码很多。于是我们抽象出一个FileService,让controller只跟fileservice耦合,这样我没只需要在fileservice中来确定我们需要哪个类型

这里面注入一个storageService,通过bean注入来确定需要哪个service

接着定义一个configuration,将配置文件我们需要设置的类型读取,即可确定服务类型,再通过bean注入给fileservice(storage的两个实现类都不需要@Service)


http://www.ppmy.cn/embedded/154357.html

相关文章

@JsonFormat @DateTimeFormat 注解

JsonFormat(shape JsonFormat.Shape.STRING, pattern "yyyy-MM-dd HH:mm:ss", timezone "GMT8") DateTimeFormat(pattern "yyyy-MM-dd HH:mm:ss")JsonFormat 注解 用于在 Java 对象与 JSON 数据之间进行序列化和反序列化操作序列化过程时&a…

【C语言】【C++】Curl库的安装

1、访问github上的curl源代码库&#xff1a; 源码链接 2、下载curl的全部源码&#xff1a; 3、解压缩&#xff0c;找到include/目录下的curl/文件夹&#xff0c;将它复制到编译器的include目录下。 之后就可以引用相关头文件了。举例&#xff1a; #include <curl/curl.h&g…

MATLAB语言的计算机基础

MATLAB语言的计算机基础 引言 在当今信息技术飞速发展的时代&#xff0c;编程能力已成为当代人士必备的一项基本技能。MATLAB&#xff08;矩阵实验室&#xff09;作为一种高级编程语言和环境&#xff0c;广泛应用于数据分析、算法开发、模型创建、数字图像处理和计算机视觉等…

Android 概述

Android是一个广泛使用的开源操作系统&#xff0c;主要应用于移动设备&#xff0c;如智能手机、平板电脑、智能电视、智能手表等。它由Google主导开发&#xff0c;并基于Linux内核构建。Android的开源特性、可定制性和丰富的生态系统&#xff0c;使其成为全球范围内最流行的操作…

利用平面进行位姿约束优化

/*** 设位姿pose存在误差&#xff0c;利用观测到的平面进行位姿pose优化&#xff0c;只优化位姿pose的z轴平移和roll,pitch,yaw四个变量&#xff0c;要求优化后的pose&#xff0c;z轴与平面的z一致。请修改代码实现这个功能* * */ #include <gtsam/slam/PriorFactor.h> #…

计算机后端学习路径(精华版)

这张计算机后端学习路径图就像是你的私人导航&#xff0c;指引你从掌握基础语言开始&#xff0c;如Python或Java&#xff0c;一路升级到理解服务器、数据库和API设计的奥秘。随着你的进步&#xff0c;它还会教你如何处理更酷炫的东西&#xff0c;比如云端服务、安全措施以及怎样…

基于CANoe16的新书《CANoe开发与CAPL编程实践》

&#x1f345; 我是蚂蚁小兵&#xff0c;专注于车载诊断领域&#xff0c;尤其擅长于对CANoe工具的使用&#x1f345; 寻找组织 &#xff0c;答疑解惑&#xff0c;摸鱼聊天&#xff0c;博客源码&#xff0c;点击加入&#x1f449;【相亲相爱一家人】&#x1f345; 玩转CANoe&…

SQL记录

1、FIND_IN_SET(BASE_CODE,#{baseCode}) FIND_IN_SET 函数用于在一个逗号分隔的字符串列表中查找一个指定的字符串&#xff0c;并返回其在列表中的位置。如果找到该字符串&#xff0c;则返回其在列表中的位置&#xff08;从1开始计数&#xff09;&#xff1b;如果没有找到或参…