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 不同协议前缀有不同的意义,用于拼接 urlprotocol-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.mzph.cn/news/722405.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[202403]xavier nx環境配置流程記錄

xavier nx環境配置流程記錄 引言1.板子環境2.設置默認python和pip2.安裝torch和torchvision2.1 下載正確的whl安裝文件2.2 開始安裝2.3 查看torch安裝情況 3.問題記錄3.1 問題1&#xff1a;Running pip as the root user can result in broken permissions3.2 問題2&#xff1a…

Java Web(八)--Servlet(三)

会话技术 为什么需要&#xff1f; 每个用户在使用浏览器与服务器进行会话的过程中&#xff0c;不可避免各自会产生一些数据&#xff0c;服务器要想办法为每个用户保存这些数据&#xff1b; 用户通过浏览器访问 Web 应用时&#xff0c;服务器都需要保存和跟踪用户的状态&…

外部存储空间

1. 存储在外部 私有 存储空间 /storage/emulated/0/Android/data/com.tiger.chapter06/files/Download/1709636015824.txt package com.tiger.chapter06;import android.os.Bundle; import android.os.Environment; import android.util.Log; import android.view.View; impo…

linux kernel物理内存概述(六)

目录 伙伴系统 1、什么是伙伴&#xff1f; 2、伙伴系统的分配原理 3、伙伴系统回收 伙伴系统 1、什么是伙伴&#xff1f; 伙伴必须是大小相同并且在物理上连续的两个或者多个页。 2、伙伴系统的分配原理 首先根据内存分配接口函数gfp_t gfp_mask&#xff0c;找到内存分…

分布式事务Seata

分布式事务与Seata落地 一、事务基础 1.1 本地事务 事务指的就是一个操作单元&#xff0c;在这个操作单元中的所有操作最终要保持一致的行为&#xff0c;要么所有操作都成功&#xff0c;要么所有的操作都被撤销。 1.2 本地事务特性 本地事务四大特性: ACID A&#xff1a;原…

SuperPoint和SuperGlue 的算法介绍及学习应用经验分享

SuperPoint和SuperGlue 的算法介绍及学习应用经验分享 2024年01月03日 10:38186浏览 3喜欢 0评论 视频地址&#xff1a; SuperPoint和SuperGlue 的算法介绍及学习应用经验分享 好想 特征点匹配&#xff0c;为了计算位姿 特征点&#xff1a;关键点描述子&#xff08…

第五十回 插翅虎枷打白秀英 美髯公误失小衙内-mayfly-go:web 版 linux、数据库等管理平台

晁盖宋江和吴用到山下迎接雷横上山&#xff0c;宋江邀请雷横入伙&#xff0c;雷横以母亲年事已高为由拒绝了。 雷横回到郓城&#xff0c;听李小二说从东京新来了个表演的叫白秀英&#xff0c;吹拉弹唱跳&#xff0c;样样精通&#xff0c;于是雷横和李小二一起到戏院去看演出。…

Python爬虫实战第三例【三】(下)

零.前情提要&#xff1a; 没有看上一章的小伙伴&#xff0c;建议先去看上一章&#xff0c;避免有些知识点不连贯 地址&#xff1a;Python爬虫实战第三例【三】【上】-CSDN博客 在上一章&#xff0c;我们经过分析.m3u8文件和.ts文件后&#xff0c;成功爬取到了所有.ts文件的文…

冒泡经典题

&#x1f4d1;前言 本文主要是【】——简单使用的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f304;每日一句&#xff1a;狠…

RN开发搬砖经验之-Android平台下处理后退按钮事件

基本接口 利用RN 针对Android平台提供的接口 BackHandler BackHandler需要区分类组件跟函数组件的场景&#xff0c;主要是两个组件一个基于组件生命周期的&#xff0c;一个是基于hook的&#xff0c;即注册BackHandler的事件监听与移除时机写法不同。 类组件 示例代码 impor…

使用J-Link | OPENSDA 调试S32K144开发板

一、S32DS下载 使用的开发软件为S32DS&#xff0c;可以到NXP官网下载&#xff1a;链接&#xff0c;也可以通过网盘&#xff1a;链接 二、对S32K144开发板进行调试 调试方法一&#xff1a; S32K144开发板自带一个OPENSDA MCU&#xff0c;我们可以通过一根Mircro USB线连接到电…

计算机网络-第3章 数据链路层

主要内容&#xff1a;两个信道及对应的协议&#xff1a;点对点信道和广播信道&#xff0c;扩展以太网和高速以太网 本章的分组转发为局域网内的转发&#xff0c;不经过路由&#xff0c;网络层分组转为为网络与网络之间的转发&#xff0c;经过路由。局域网属于网络链路层的范围…

springboot3.x 以上,官方不建议使用spring.factories

springboot2.7.x 以上,官方不建议使用spring.factories 最近公司项目升级.需要将springcloud/springboot版本升级到2.7.x以上,再升级的过程中遇到了太多的问题.总结在了如下文章中: springboot艰难版本升级之路!! springboot 2.3.x版本升级到2.7.x版本 这篇文章就重点是梳理一…

LeetCode 热题 100 (尽量ACM模式刷) 持续更新!!!

LeetCode 热题 100 哈希hash 1 两数之和 /** 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出和为目标值target的那两个整数&#xff0c;并返回它们的数组下标。* 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案…

品优购首页制作

一&#xff0c;常用模块类名命名 二&#xff0c;快捷导航shortcut制作 三&#xff0c;header制作 3.1LOGO SEO优化 3.2 搜索模块定位 四&#xff0c; nav导航制作 五&#xff0c;footer底部制作 六&#xff0c;main主体模块制作 以前书写是模块化中的公共部分 main主体模块是…

MyBatis介绍

MyBatis是一个优秀的持久层框架&#xff08;就是将某些数据持久化到硬盘或其他存储器中的框架&#xff09;&#xff0c;它把jdbc对数据库的操作进行了封装&#xff0c;使用户只需关注sql本身&#xff0c;不需要去执行jdbc的那一套复杂的操作。 MyBatis通过配置xml文件或注解的方…

Linux安全加固功能

提示:工具下载链接在文章最后 目录 一.加固功能介绍二.配置加固功能1.配置安全加固功能1.1 开放目前设备监听的所有端口1.2 只开放80、443、20、21、22端口1.3 防火墙配置工具1.3.1 开放允许访问的端口1.3.2 删除允许访问的端口1.3.3 添加IP地址允许访问规则1.3.4 添加IP地址禁…

漫画手绘视频教程分享

下载地址&#xff1a; 漫画手绘教程: https://url83.ctfile.com/d/45573183-60305653-039aed?p7526 (访问密码: 7526)

JavaScript基础3之面向对象关于面向过程、函数式编程、对比、构造函数、原型

JavaScript基础 面向对象面向过程函数式编程命令式编程函数式编程特性副作用透明引用不可变变量函数是一等公民 常见的函数式编程模型 面向对象为什么要使用面向对象封装继承多态 对比面向过程函数式编程面向对象 构造函数原型constructor使用场景 对象原型 面向对象 面向过程…

chrome自动更新后,手动恢复书签和历史记录

本文是针对google没有登录账号信息&#xff0c;浏览器更新后&#xff0c;如何恢复本地书签可历史记录。 为了解决“已被CORS策略阻止&#xff1a;请求的资源上没有’Access-Control-Allow-Origin’标头&#xff08;跨域请求失败”这个问题&#xff0c;修改了Google属性&#x…