DiskMirror-spring-boot-starter 技术|

DiskMirror-spring-boot-starter 技术

diskMirror 实现了 SpringBoot 的 starter 能够集成到 SpringBoot 中。

DiskMirror 的 starter,通过引入此类,可以直接实现 diskMirror 在 SpringBoot 中的自动配置,接下来我们将使用案例逐步的演示 diskMirror starter 的使用 需要注意的是,此
starter 最适用于 SpringBoot3 版本,且也推荐使用 SpringBoot3 版本的自动配置模块!!!
image diskMirror-starter

DiskMirror 的 starter,通过引入此类,可以直接image实现 diskMirror 在 SpringBoot 中的自动配置,接下来我们将使用案例逐步的演示 diskMirror starter 的使用 需要注意的是,此
starter 最适用于 SpringBoot3 版本,且也推荐使用 SpringBoot3 版本的自动配置模块!!!

引入 starter

我们可以直接在 maven 中像下面这样配置好 starter,在下面我们引入了一些依赖,如果需要使用第三方文件系统适配器,则可以直接在 maven 中引入,如果您不需要第三方文件系统,可以不引入
根据您的需求来进行选择,如果您不知道需要的库有哪些,可以查阅 diskMirror 的主页


<dependencies>
    <!-- 导入 SpringBoot 项目的 starter 在这里我们使用的示例是 Web starter 您可以根据您的需要修改 starter 类型 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- 导入 DiskMirror 的 starter TODO 一般来说 只需要导入这个和其它的第三方文件系统依赖即可 -->
    <dependency>
        <groupId>io.github.BeardedManZhao</groupId>
        <artifactId>diskMirror-spring-boot-starter</artifactId>
        <version>1.0.2</version>
    </dependency>
    <!-- 导入 diskMirror 的 库 这是一个可选操作,如果您有版本的指定需求,可以在这里设置,如果没有可以不设置,diskMirror starter 会自动配置 -->
    <dependency>
        <groupId>io.github.BeardedManZhao</groupId>
        <artifactId>diskMirror</artifactId>
        <version>1.1.2</version>
    </dependency>
    <!-- 导入 zhao utils 的库 这是一个工具类,被 diskMirror 依赖,您可以像上面一样导入 也是一个可选操作(需要注意的是,在 1.0.0 版本中 此库是必须引入的) -->
    <dependency>
        <groupId>io.github.BeardedManZhao</groupId>
        <artifactId>zhao-utils</artifactId>
        <version>1.0.20240121</version>
    </dependency>
    <!-- 导入 fastjson2 库 这是一个JSON解析库,被 diskMirror 依赖,您可以像上面一样导入 也是一个可选操作 -->
    <dependency>
        <groupId>com.alibaba.fastjson2</groupId>
        <artifactId>fastjson2</artifactId>
        <version>2.0.25</version>
    </dependency>
</dependencies>

开发基本的 SpringBoot3 项目

在这里您可以根据一些简单的示例来了解如何使用 diskMirror 的盘镜 starter。

配置 starter

diskMirror 的 starter 配置文件具有默认数值,下面就是默认的配置文件,同样,您可以按照下面的示例来进行配置文件的修改。

PS 请将 enable-feature 设置为 true!!!

disk-mirror:
  # 此配置项目代表的就是是否启用 diskMirror 如果设置为 false 则代表不启用,diskMirror 的starter 将不会被加载,需要您手动设置此参数
  enable-feature: false
  # 要使用的盘镜适配器类型 在这里默认数值是本地盘镜适配器,具体的适配器 您可以查阅 top.lingyuzhao.diskMirror.core.DiskMirror 类
  adapter-type: "LocalFSAdapter"
  # 要被盘镜管理的目录 用于存储数据的目录 此目录是真实目录
  root-dir: "/DiskMirror"
  # 一般来说 如果对接带第三方文件系统 而非本次文件系统 则此参数则会派上用场,其代表的就是第三方文件系统的地址
  fs-default-fs: "hdfs://localhost:8020/"
  # 当处理之后,如果处理无错误会返回一个结果状态,此数值代表的就是是否正确处理
  ok-value: "ok!!!!"
  # 返回结果的key 返回结果中 结果状态的字段名字
  res-key: "res"
  # 协议前缀,默认为http 不同协议前缀有不同的意义,用于拼接 url
  protocol-prefix: "http://localhost:80/"
  # 参数 可能会派上用场,在不同的适配器中有不同的实现
  params: { }
  # 用户磁盘配额 每个盘镜空间的磁盘最大空间数值,单位是字节
  user-disk-mirror-space-quota: 134217728
  # 安全密钥
  secure-key: ""
  # 指定的几个用户的空间对应的容量
  space-max-size: { }

MAIN 启动主类

在这里我们为了演示清晰,没有使用复杂架构,直接使用了一个启动主类,也没有设置其它的控制器。

package com.example.springboot3demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import top.lingyuzhao.diskMirror.conf.Config;
import top.lingyuzhao.diskMirror.core.Adapter;

@SpringBootApplication
// 使用此扫描器对 top.lingyuzhao.diskMirror.starter 包进行扫描,就可以实现自动配置了
@ComponentScan("top.lingyuzhao.diskMirror.starter")
public class SpringBoot3DemoApplication {

    public static void main(String[] args) {
        // 获取到运行器上下文
        final var run = SpringApplication.run(SpringBoot3DemoApplication.class, args);
        // 查看一下 diskMirror 是否被加载进来了
        System.out.println(run.getBean(Adapter.class).getConfig().get(Config.PROTOCOL_PREFIX));
    }

}

启动测试

当看到下面这样的日志,则代表启动成功了,diskMirror 也被成功的集成了进来!!

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v3.2.1)

2024-02-13T23:18:29.914+08:00  INFO 6016 --- [           main] c.e.s.SpringBoot3DemoApplication         : Starting SpringBoot3DemoApplication using Java 17.0.9 with PID 6016 (G:\My_Project\IDEA\SpringBoot3Demo\target\classes started by zhao in G:\My_Project\IDEA\SpringBoot3Demo)
2024-02-13T23:18:29.918+08:00  INFO 6016 --- [           main] c.e.s.SpringBoot3DemoApplication         : No active profile set, falling back to 1 default profile: "default"
2024-02-13T23:18:30.256+08:00  INFO 6016 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port 8080 (http)
2024-02-13T23:18:30.261+08:00  INFO 6016 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2024-02-13T23:18:30.261+08:00  INFO 6016 --- [           main] o.apache.catalina.core.StandardEngine    : Starting Servlet engine: [Apache Tomcat/10.1.17]
2024-02-13T23:18:30.287+08:00  INFO 6016 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2024-02-13T23:18:30.288+08:00  INFO 6016 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 352 ms
2024-02-13T23:18:30.309+08:00  INFO 6016 --- [           main] t.l.d.s.c.DiskMirrorAutoConfiguration    : load properties class top.lingyuzhao.diskMirror.starter.conf.properties.DiskMirrorProperties
2024-02-13T23:18:30.309+08:00  INFO 6016 --- [           main] t.l.d.s.c.DiskMirrorAutoConfiguration    : getAdapterType run = adapterType:LocalFSAdapter
2024-02-13T23:18:30.310+08:00  INFO 6016 --- [           main] t.l.d.s.c.DiskMirrorAutoConfiguration    : diskMirror is ok!!!
             'WWWKXXXXNWWNk,     ,kkd7               KWWb,                     
             ;WWN3.....,lNWWk.                       KWWb,                     
             ;WWNl        XWWk.  :XXk,   oKNNWNKo    KWWb,   dXXO:             
             ;WWNl        3WWX7  7WWO7  0WWo:,:O0d,  KWWb, lNWKb:              
             ;WWNl        :WWNl  7WWO7  0WWO,.       KWWbbXWKb:.               
             ;WWNl        kWW03  7WWO7   lXWWWN0o.   KWWNWWW0;                 
             ;WWNl       lWWNo,  7WWO7     .,7dWWN;  KWWOolWWN7                
             'WWNo,..,'oXWWKo'   7WWO7 .lb:    XWNl. KWWb, .KWWk.              
             ;WWWWWWWWWNKOo:.    7WWO7  oNWX0KWWKb:  KWWb,   bWWX'             
              ,'''''''',,.        ,'',    ,;777;,.    '''.    .''',            
KWWNWK,        ,WWNWWd.   ;33:                                                 
KWWbWWO.       XWXkWWd.   ...    ...  .,,   ...  ,,.      .,,,,        ...  .,,
KWWodWWd      OWNlOWWd.  .WWN7   KWW3OWNWl.:WWOlNWNO:  3KWWXXNWWXo.   ,WWX3XWNK
KWWo.OWWo    oWWb;xWWd.  .WWXl   0WWXkl',, ;WWNKb:,,, XWWkl,..,oWWN'  ,WWNKd7,,
KWWo  XWN7  ;WWx3 dWWd.  .WWXl   0WWO3     ;WWWl,    bWW03      OWWk, ,WWWo'   
KWWo  ,NWK',NW0l  dWWd.  .WWXl   0WWd,     ;WWX3     kWWO:      dWMO: ,WWNl    
KWWo   ;WWkKWXl.  dWWd.  .WWXl   0WWd.     ;WWK7     7WWX7      XWWd; ,WWN3    
KWWo    lWWWNo,   dWWd.  .WWXl   0WWd.     ;WWK7      oWWX3,.,7XWWk3  ,WWN3    
kXXo     dXXd:    oXXb.  .KX0l   xXXb.     'KXO7       .o0XNNNXKkl'   .KXKl    
LocalFSAdapter:1.1.2
2024-02-13T23:18:30.419+08:00  INFO 6016 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port 8080 (http) with context path ''
2024-02-13T23:18:30.423+08:00  INFO 6016 --- [           main] c.e.s.SpringBoot3DemoApplication         : Started SpringBoot3DemoApplication in 0.661 seconds (process running for 0.9)
http://localhost:80/

如何使用 diskMirror 的适配器?

通过 starter 获取到的就是 diskMirror
中的适配器对象,您可以通过适配器对象实现有效的文件操作,具体使用方法请参考 diskMirror 的主页

更新记录

1.0.2

发布时间:2024-02-23

  • 针对配置文件的默认数值进行的设定,这使得您可能不需要在配置文件中将所有配置项目进行设置
  • 变更了适配器Bean 在 SpringBoot 中的Bean 的名字,这有助于避免一些命名冲突问题,变更的情况为 getAdapter -> top.lingyuzhao.diskMirror.core.Adapter

1.0.1

发布时间:2024-02-14

  • 增加了 enable-feature 配置项,使得您可以通过调整此参数来实现是否要启动 diskMirror 的 starter,减少了需要变更 pom.xml 的风险。
  • 增加了针对 zhao-utils 库的自动依赖,您可以不去声明此库的依赖,diskMirror starter 会自动依赖它。

更多


  • diskMirror starter SpringBoot:https://github.com/BeardedManZhao/diskMirror-spring-boot-starter.git
  • diskMirror 后端服务器版本(MVC):https://github.com/BeardedManZhao/DiskMirrorBackEnd.git
  • diskMirror 后端服务器版本(SpringBoot):https://github.com/BeardedManZhao/diskMirror-backEnd-spring-boot.git
  • diskMirror Java API 版本:https://github.com/BeardedManZhao/DiskMirror.git

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/420278.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI视频又又炸了!照片+声音变视频,阿里让Sora女主唱歌小李子说rap

Sora之后&#xff0c;居然还有新的AI视频模型&#xff0c;能惊艳得大家狂转狂赞&#xff01; 有了它&#xff0c;《狂飙》大反派高启强化身罗翔&#xff0c;都能给大伙儿普法啦&#xff08;狗头&#xff09;。 这就是阿里最新推出的基于音频驱动的肖像视频生成框架&#xff0c;…

马斯克正式起诉OpenAI和奥特曼!

就在刚刚&#xff0c;马斯克闹出来一件大事——正式起诉OpenAI和Sam Altman&#xff0c;并要求OpenAI 恢复开源GPT-4等模型&#xff01; 众所周知&#xff0c;马斯克这两年一只在推特上指责 OpenAI是CloseAI(不开源)&#xff0c;但都只是停留在口头上。 而这次马斯克动了真格。…

搭建LNMP环境并搭建论坛和博客

目录 一、LNMP架构原理 二、编译安装Nginx 三、编译安装MySQL 四、编译安装PHP 五、配置Nginx支持PHP解析 六、安装论坛 七、安装博客 一、LNMP架构原理 LNMP架构&#xff0c;是指在Linux平台下&#xff0c;由运行Nginx的web服务器&#xff0c;运行PHP的动态页面解析程序…

聚道云软件连接器2月新增应用/产品更新合集

2月更新概要 新增应用&#xff1a; 应用1&#xff1a;旺店通 应用2&#xff1a;明道云 应用3&#xff1a;春雨医生 应用4&#xff1a;姿美堂 应用5&#xff1a;三维家 新增&更新功能 1、【流程】中增加版本管理功能 新增应用 应用1&#xff1a;旺店通 旺店通ERP隶…

38.云原生之Istio安全-流量鉴权加密

云原生专栏大纲 文章目录 TLS 和 mTLSTLS 和 mTLS使用场景TLS 加密通信的流程终止 TLS什么时候用 mTLS&#xff1f;什么时候不用 mTLS&#xff1f; 流量加密入口流量加密内部流量加密PeerAuthentication 为工作负载设置 mTLSDestinationRule 为工作负载设置 mTLS 安全最佳实战…

(定时器/计数器)中断系统(详解与使用)

讲解 简介 定时器/计数器 定时器实际上也是计数器,只是计数的是固定周期的脉冲 定时和计数只是触发来源不同(时钟信号和外部脉冲)其他方面是一样的。 定时器在单片机内部就像一个小闹钟一样,根据时钟的输出信号,每隔“一秒”,计数单元的数值就增加一,当计数单元数值…

Qt应用软件【测试篇】vargrid内存检查工具

文章目录 vargrid介绍vargrid官网vargrid安装常用命令Valgrind的主要命令vargrid介绍 Valgrind是一个用于构建动态分析工具的框架,能自动检测许多内存管理和线程错误,并详细分析程序性能。Valgrind发行版包括七个成熟工具:内存错误检测器、两个线程错误检测器、缓存和分支预…

防御保护课程笔记

内容安全 防病毒 过滤技术 密码学

基于java ssm springboot+VUE疫情防疫系统系统前后端分离设计和实现

基于java ssm springbootVUE疫情防疫系统系统前后端分离设计和实现 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐…

vue3使用百度地图实现个性化地图和轨迹

vue3使用百度地图实现个性化地图和轨迹 最终效果如图&#xff1a; 步骤如下&#xff1a; 一、百度地图在vue3中的引入 1.首先在百度地图开发中心中申请ak&#xff08;不多介绍&#xff09; 2.两种引入方式&#xff1a;在 index.html 中直接引入&#xff1b;使用npm导包。&…

【已亲测有效】如何彻底删除nodejs,避免影响安装新版本

第一步开始菜单搜索uninstall node.js&#xff0c;点击之后等待删除&#xff08;删除node_modules文件夹以及以下这些文件&#xff09; 第二步手动删除nodejs下载位置的其他文件夹。&#xff08;就是另外自己新建的两个文件夹node_cache和node_global&#xff09; 到这里其实应…

GEE:计算NDVI时间序列和谐波拟合曲线之间的残差时间序列

作者:CSDN @ _养乐多_ 本文将介绍在谷歌地球引擎(Google Earth Engine)使用 Landsat 时间序列数据数据进行时间序列谐波(harmonic)拟合建模,并对模型的残差(residual)序列(计算NDVI时间序列和谐波拟合曲线之间的残差时间序列)进行分析。具体流程为使用Landsat计算ND…

MariaDB MaxScale实现mysql8读写分离

目录 1.MaxScale 是干什么的&#xff1f; 2.MaxScale 实验环境 3.实现数据库主从复制 4.创建用户 1) 创建监控用户 2) 创建路由用户 5.docker 安装MaxScale 6.配置maxscale 使用 maxctrl list servers 命令查看运行状态 查看注册服务 使用 maxctrl list listeners Read-…

I/O:标准IO(二)

一、标准IO操作函数 1.fgets、fputs int fputs(const char *s, FILE *stream); 功能描述&#xff1a;将字符串s写入stream指向的文件中 返回数&#xff1a;成功写入文件中数据的字节数 int puts(const char* s) 功能描述&#xff1a;将字符串s写入终端&#xff1b; 返回值&…

kitex 入门和基于grpc的使用

&#x1f4d5;作者简介&#xff1a; 过去日记&#xff0c;致力于Java、GoLang,Rust等多种编程语言&#xff0c;热爱技术&#xff0c;喜欢游戏的博主。 &#x1f4d7;本文收录于kitex系列&#xff0c;大家有兴趣的可以看一看 &#x1f4d8;相关专栏Rust初阶教程、go语言基础系…

动态规划--(算法竞赛、蓝桥杯)--二维费用背包

1、B站视频链接&#xff1a;E15 背包DP 二维费用背包_哔哩哔哩_bilibili #include <bits/stdc.h> using namespace std; int f[101][101]; //f[j][k]第i件物品&#xff0c;体积<j,重量<k的最大价值int main(){int n,V,W;//物品、容量、承重int v,w,val;//体积、重…

redis实现分布式全局唯一id

目录 一、前言二、如何通过Redis设计一个分布式全局唯一ID生成工具2.1 使用 Redis 计数器实现2.2 使用 Redis Hash结构实现 三、通过代码实现分布式全局唯一ID工具3.1 导入依赖配置3.2 配置yml文件3.3 序列化配置3.4 编写获取工具3.5 测试获取工具 四、运行结果 一、前言 在很…

施耐德M340和M200 Modbus 通讯实现

Unity平台下M340和M200通过Modbus TCP通讯 两者通过RJ45连接&#xff0c;M340内IO scanning配置&#xff1a; IP address是各个M200的地址&#xff0c;通过这个配置&#xff0c;可以将各server的指定数据区映射到M340的内部数据区。 相比于M200作Modbus TCP Client&#xff0…

Java SE 1.基础常识

1.计算机语言 1.机器语言&#xff1a; 二进制的0和1组成的编码2.汇编语言&#xff1a; 英文标识符组成的编码3.高级语言&#xff1a; 接近自然语言 2.Java技术平台 1.JAVA SE 1.Java Platform Standard Edition&#xff0c;Java标准版 1.JDK 1.Java开发工具集&#xff1a;包括J…

Python实现双向链表:从基础到应用

一、引言 双向链表是一种比单向链表更复杂的数据结构&#xff0c;每个节点除了包含数据和指向下一个节点的指针外&#xff0c;还包含一个指向前一个节点的指针。这种结构使得我们可以从链表的任何节点开始&#xff0c;向前或向后遍历链表。 目录 一、引言 二、节点定义 三、…
最新文章