- 博客(111)
- 资源 (16)
- 收藏
- 关注
原创 Linux搭建RustDesk服务
本文介绍了使用Docker一键部署RustDesk远程控制服务器的完整流程。首先在腾讯云服务器上安装宝塔面板和Docker,配置防火墙规则。通过Docker编排部署包含中继服务器、API服务器和WEB运维功能的RustDesk服务端,设置环境变量和端口映射。部署完成后获取管理员密码登录WEB运维端,配置客户端连接参数(ID服务器、中继服务器地址及公钥)。最后展示了多端设备同步管理和网页端远程控制功能,实现完整的自建远程控制解决方案。
2025-12-16 13:46:26
266
原创 使用阿里云效搭建个人maven私有仓库
本文探讨了软件开发团队发布自主研发框架的几种方式及其适用场景。传统方法包括发布到Maven中央仓库(适合开源组件)、搭建Nexus私有仓库(适合大型团队)和本地Maven install(仅限单人开发)。针对小团队协作场景,文章重点推荐了阿里云效制品仓库方案,详细介绍了其操作流程:扫码登录云效平台,通过制品管理功能上传JAR包和POM文件,配置Maven设置后即可实现团队共享使用。该方案无需服务器资源,完美平衡了私有性和团队协作需求。
2025-10-25 11:36:19
494
原创 oauth2在web系统中的应用
本文介绍了OAuth 2.0认证在系统集成中的两种典型应用场景。在单点登录(SSO)场景中,主要采用授权码模式,通过授权码换取访问令牌,实现用户无感知或显式授权的跨系统登录。在数据共享(API集成)场景中,则使用客户端模式,应用直接凭密钥获取令牌访问授权资源。两种场景都涉及应用注册、密钥管理、令牌获取与验证等关键步骤,平台需根据不同的业务需求设计相应的访问控制策略。文章通过具体示例说明了两种模式的实际应用流程和实现要点。
2025-07-02 15:50:51
574
原创 SpringBoot集成ECDH密钥交换
对称加解密算法都需要一把秘钥,但是很多情况下,互联网环境不适合传输这把对称密码,有密钥泄露的风险,为了解决这个问题ECDH密钥交换应运而生——椭圆曲线,生成密钥的方法——交换密钥的方法。
2024-12-31 14:28:18
635
原创 SpringBoot+SeetaFace6搭建人脸识别平台
最近多个项目需要接入人脸识别功能,之前的方案是使用百度云api集成,但是后续部分项目是内网部署及使用,考虑到接入复杂程度及收费等多种因素,决定参考开源方案自己搭建,保证服务的稳定性与可靠性项目地址:https://gitee.com/code2roc/fastface。
2024-10-08 14:20:20
1404
4
原创 SpringBoot使用spring.factories加载默认配置
在日常开发过程中,发布一些产品或者框架时,会遇到某些功能需要一些配置才能正常运行,这时我们需要的提供默认配置项,同时用户也能覆盖进行个性化。
2024-06-23 15:12:36
458
1
原创 Linux下制作Nginx绿色免安装包
linux下安装nginx比较繁琐,遇到内网部署环境更是麻烦,所以研究了下nginx绿色免安装版的部署包制作,开箱即用,特此记录分享,一下操作在centos8环境下安装,如果需要其他内核系统的安装(Debian/Ubuntu等),请在对应环境虚拟机下安装制作。
2024-04-29 15:34:33
872
原创 SpringBoot配置HTTPS及开发调试
在实际开发过程中,如果后端需要启用https访问,通常项目启动后配置nginx代理再配置https,前端调用时高版本的chrome还会因为证书未信任导致调用失败,通过摸索整理一套开发调试下的https方案,特此分享。
2024-04-29 15:21:52
1026
2
原创 SpringBoot手动取消接口执行方案
实际开发中经常会遇到比较耗时的接口操作,但页面强制刷新或主动取消接口调用后后台还是会继续运行,特别是有大量数据库操作时会增加服务器压力,所以进行研究测试后总结了一套主动取消接口调用的解决方案。
2024-03-26 15:38:35
590
1
原创 Windows安装多个Tomcat部署项目
在实际生产环境中,经常会有一个tomcat部署多个应用程序的场景,但多个项目应用同一个基础框架时,会出现某些文件路径相同的情况导致管理混乱(例如附件,日志,缓存文件),并且更新有时需要关闭tomcat导致多个项目同时失效,本文提供同时安装多个tomcat的方案,独立部署每个项目便于管理。
2024-01-05 10:38:06
625
原创 从零开发基于ASM字节码的Java代码混淆插件XHood
因在公司负责基础框架的开发设计,所以针对框架源代码的保护工作比较重视,之前也加入了一系列保护措施例如自定义classloader加密保护,授权license保护等,但都是防君子不防小人,安全等级还比较低经过调研各类加密混淆措施后,决定自研混淆插件,自主可控,能够贴合实际情况进行定制化,达到框架升级后使用零感知,零影响。
2023-11-02 08:51:32
322
原创 SpringBoot集成微信支付JSAPIV3保姆教程
最近为一个公众号h5商城接入了微信支付功能,查找资料过程中踩了很多坑,以此文章记录一下和大家分享。
2023-09-11 16:37:23
1162
原创 如何搭建虚拟专有网络访问公司内网
因为公司开发都是内网环境,以往居家办公或非公司环境,都需要进行远程到公司电脑进行办公,为了方便部门同事出差驻场开发,搭建了虚拟专有网络在实际搭建过程中使用了OpenVPN和SoftEtherVPN两种方式,做个总结记录,个人还是更推荐SoftEtherVPN,有可视化界面,配置简单以下操作中指的是拥有外网ip及端口的公司服务器,指个人的办公电脑。
2023-09-02 15:04:09
1746
原创 SpringBoot开发符合S3协议的文件存储服务
s3协议无标准说明文档,为rest风格,创建/删除/详情方法通过PUT/DELETE/HEAD表述很多方法共用一个路由,通过head参数区分(例如putObject和copyObject)参考aws的最新api文档:https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html实现以下基础功能Bucket创建Bucket删除文件上传文件删除文件下载文件分片操作(初始化/分片上传/合并)
2023-07-23 13:54:35
926
原创 基于嵌入式Tomcat的War包启动器
最近针对java项目的部署方式进行整理,jenkins/tomcat/windows工具/linux脚本/web部署平台等等发现war包通过tomcat部署比较繁琐,等待时间长,配置规则复杂对于小白很不友好,也难以接入到自定义的部署工具/平台中之前开发的Jar包部署平台是servlet开发通过嵌入式tomcat部署,借此打开思路能否基于嵌入式tomcat做一个war包启动器,通过代码的方式开启tomcat容器来部署war包。
2023-07-02 17:45:15
1095
原创 Java实现AWS S3 V4 Authorization自定义验证
最近在开发文件存储服务,需要符合s3的协议标准,可以直接接入aws-sdk,本文针对sdk发出请求的鉴权信息进行重新组合再签名验证有效性,sdk版本如下
2023-06-04 16:40:03
2447
原创 从零构建可视化jar包部署平台JarManage
支持在线创建项目,上传Jar包,自动备份,配置启动参数,注册系统服务,查看启动日志等功能,具有以下优点基于servlet开发,依赖简洁,部署包10MB左右结合嵌入式tomcat一键部署,无外部容器依赖使用h2db存储数据,无外部数据库依赖适配windows/linux平台,满足多种环境具体项目经平台部署后自动注册系统服务,无需担心服务器重启系统架构图如下系统截图展示。
2023-04-01 17:52:33
1626
原创 SpringBoot集成SpringBootAdmin实现监控
springboot开启actuator集成spring-boot-admin实现服务可视化监控
2023-03-25 17:33:55
448
原创 基于jsplumb构建的流程设计器
流程设计器中最基础的两个元素为活动(节点)和变迁(连接),我们需要以下基础功能来配合相关接口进行工作流相关设计数据的保存/修改活动的添加/删除/移动变迁的添加/删除活动/变迁数据的全部读取根据json渲染活动与变迁相关引入依赖如下表所示名称功能jsplumb.js设计器主要依赖,用于绘制相关图形与动态操作实现jquery.jsjsplumb依赖的库jsplumb依赖的库,进行拖拽绑定实现右击菜单模板引擎渲染活动,避免字符串拼接。
2023-02-19 18:33:55
938
原创 SpringBoot访问windows共享文件
最近有项目需要开发档案打包下载功能,其中包含很多大附件,项目使用minio存储且不在同一台服务器上,为了优化速度决定使用windows共享功能进行文件传输。
2023-02-05 15:45:50
1250
原创 SpringBoot动态更新yml文件
在系统运行过程中,可能由于一些配置项的简单变动需要重新打包启停项目,这对于在运行中的项目会造成数据丢失,客户操作无响应等情况发生,针对这类情况对开发框架进行升级提供yml文件实时修改更新功能。
2022-12-31 19:29:41
5452
10
原创 fastjson全局日期序列化设置导致JSONField无效
fastjson通过代码指定全局序列化返回时间格式,导致使用JSONField注解标注属性的特殊日期返回格式失效。
2022-12-17 13:38:03
720
1
原创 SpringBoot集成数据传输加密
近期在对开发框架安全策略方面进行升级优化,提供一些通用场景的解决方案,本文针对前后端数据传输加密进行简单的分享,处理流程设计如下图所示,本加密方法对原有项目兼容性较好,只需要更换封装好的加密Ajax请求方法,后端统一拦截判断是否需要解密即可生成的DES加密密钥一定是8的整数倍的位数生成RSA密钥对RSA密钥对有很多种格式,因为需要和前端算法库互联互通,这里选择的是1024位,Padding方式为PKSC1前端DES加密引入crypto.js第三方库前端RSA加密引入jsencrypt,js第三方
2022-12-04 14:50:43
1570
原创 web系统添加盲水印
为增加系统安全性,避免重要敏感信息通过截图方式泄露,对web页面增加盲水印标识,标注系统名称,登陆人,当前时间等信息,这里的盲水印指肉眼不可见的html水印。
2022-11-26 17:13:04
1263
原创 SpringBoot集成onlyoffice实现word文档编辑保存
onlyoffice为一款开源的office在线编辑组件,提供word/excel/ppt编辑保存操作。
2022-09-25 11:50:48
7603
13
原创 SpringBoot集成ffmpeg实现视频转码播放
之前构建过文件预览服务,对于视频部分前端播放组件限制只能为mp4格式,为了支持更多视频格式决定对方案进行升级,由于视频格式较多,针对每一种格式定制选择播放器不太现实,决定对视频源统一转码,转码后的格式为mp4,兼容性稳定且前后端改造工作较小。
2022-09-18 14:45:58
5098
1
原创 linux部署jar包脚本和注册开机启动
之前开发了windows部署jar包为服务的工具在实际生产环境中使用非常简单方便,公司部分项目是部署在linux系统中的,所以决定整合一个通用的jar包部署脚本,并注册为开机启动服务,为开发实施的同事提供方便,以下操作实际系统环境为centos8。...
2022-08-13 12:52:27
2772
原创 部署jar包windows服务工具
工具包含【服务名称】【jar包路径】【部署端口】【执行结果】【操作按钮】五个部分服务名称对应的就是安装后windows服务的名字jar包路径部署项目的jar文件物理路径部署端口默认为空不指定使用配置文件中端口,指定后使用自定义端口执行结果显示安装/卸载/启动/关闭服务适输出的操作日志操作按钮在进行服务操作前必须将所有配置确定输入后点击保存配置按钮安装/卸载/启动/停止四个按钮对应相关windows服务的操作服务安装后默认停止状态,需要手动启动,服务启动方式为自动。...
2022-08-06 22:47:38
2310
3
原创 knife4j通过js动态刷新全局参数
之前在为框架集成knife4j接口调试查看工具,使用了一段时间,使用体验上比较繁琐,因为接口都需要token,所以每次都要去f12查看token复制再创建全局参数,可能我只需要测试一个接口但是步骤少不了,针对此问题框架做了一些优化。...
2022-07-16 15:25:11
1420
原创 SpringBoot实现自定义路由覆盖
公司最近有一个项目二期需要对一些功能进行改造,涉及部分框架内置业务接口个性化定制,兼容老接口功能并且增加一部分新的数据返回,由于前端调用这些接口分布较多且较为零碎,修改测试成本较大,所以打算在框架层面提供路由覆盖功能,加快项目进度减少无技术含量的修改带来的系统风险...
2022-07-16 14:47:53
1014
1
原创 SpringBoot整合atomikos实现跨库事务
框架之前完成了多数据源的动态切换及事务的处理,想更近一步提供一个简单的跨库事务处理功能,经过网上的搜索调研,大致有XA事务/SEGA事务/TCC事务等方案,因为业务主要涉及政府及企业且并发量不大,所以采用XA事务,虽然性能有所损失,但是可以保证数据的强一致性针对注册的数据源拷贝一份用于XA事务,使得本地事务和XA全局事务相互独立可选择的使用引入atomikos第三方组件注册XA数据源使用Druid连接池,需要使用DruidXADataSource数据源对象,再使用AtomikosDataSourceBe
2022-05-31 22:52:51
1907
1
原创 SpringBoot多数据源事务解决方案
背景之前有文章提供了springboot多数据源动态注册切换的整合方案,在后续使用过程中,发现在事务控制中有多种bug发生,决定对此问题进行分析与解决前情提要多数据源切换流程结构图如下所示,包含几个组成元素自定义的数据源配置处理,通过DruidDataSource对象动态注册到系统中自定义数据源标识注解与切面数据源切换时的上下文线程变量持有者自定义AbstractRoutingDataSource,实现数据源路由切换问题分析在Controller加入@Transiti
2022-05-01 14:06:37
6455
3
原创 SpringBoot集成mybatis拦截器修改表名
背景公司的框架是基于mysql5.7开发的,最近有一个应用项目部署在linux系统上,使用的是mysql8.0,安装时未开启大小写敏感忽略,客户又不允许重装mysql环境,导致一些框架代码和业务代码中表名使用大写的地方会出现表名找不不到的情况,所以需要进行统一处理自定义SQLAST适配器自定义ASTVisitorAdapter对表名进行修改public class MySqlExportTableAliasVisitor extends MySqlASTVisitorAdapter { @O
2022-05-01 14:03:22
4332
原创 SpringBoot集成消息队列
背景最近在对公司开发框架进行优化,框架内涉及到多处入库的日志记录,例如登录日志/操作日志/访问日志/业务执行日志,集成在业务代码中耦合度较高且占用业务操作执行时间,所以准备集成相关消息队列进行代码解耦方案规划现有的成熟消息队列组件非常多,例如RabbitMQ,ActiveMQ,Kafka等,考虑到业务并发量不高且框架已经应用于多个项目平稳运行,准备提供基于Redis的消息队列和集成ActiveMQ两种方案,Redis消息队列的好处是无需额外安装部署存量项目可平稳过度但消息无法持久化可能丢失,Activ
2022-04-23 14:24:18
2617
2
原创 SpringBoot集成knife4j
前言项目api编写有文档但是调试麻烦,需要借助postman/apipost等第三方工具,需要在开发框架中内置接口管理及调试功能增加开发便捷性pom配置说明,框架使用springboot版本为2.0.0.RELEASE <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-sta
2022-04-17 16:05:42
2389
原创 SpringBoot异步任务获取HttpServletRequest
前言在使用框架日常开发中需要在controller中进行一些异步操作减少请求时间,但是发现在使用@Anysc注解后会出现Request对象无法获取的情况,本文就此情况给出完整的解决方案原因分析@Anysc注解会开启一个新的线程,主线程的Request和子线程是不共享的,所以获取为null在使用springboot的自定带的线程共享后,代码如下,Request不为null,但是偶发的其中body/head/urlparam内容出现获取不到的情况,是因为异步任务在未执行完毕的情况下,主线程已经返回,拷
2022-04-09 15:47:58
5019
12
原创 SpringBoot自定义classloader加密保护class文件
背景最近针对公司框架进行关键业务代码进行加密处理,防止通过jd-gui等反编译工具能够轻松还原工程代码,相关混淆方案配置使用比较复杂且针对springboot项目问题较多,所以针对class文件加密再通过自定义的classloder进行解密加载,此方案并不是绝对安全,只是加大反编译的困难程度,防君子不防小人,整体加密保护流程图如下图所示maven插件加密使用自定义maven插件对编译后指定的class文件进行加密,加密后的class文件拷贝到指定路径,这里是保存到resource/coreclass
2022-02-19 18:26:52
4187
14
原创 SpringBoot自定义maven-plugin插件整合asm代码插桩
背景公司开发框架增加了web系统license授权证书校验模块,实行一台机器一个授权证书,初步方案是增加拦截器针对全局请求进行拦截校验,评估后认为校验方式单一,应该增加重要工具类,业务service实现中每个方法的进行校验,因为涉及代码量较大硬编码工作困难,故选择通过自定义maven插件在编译期间进行动态代码插桩操作项目配置新建maven项目设置打包方式<packaging>maven-plugin</packaging>增加依赖项 <!--使用doc的方式-
2022-02-19 18:25:47
1164
原创 SpringBoot在Tomcat部署war包
启动类配置继承SpringBootServletInitializer@SpringBootApplicationpublic class TestApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(TestApplication.class, args); } @Override
2022-01-16 17:02:48
1916
原创 SpringBoot整合达梦数据库
安装配置软件安装下载地址:https://www.dameng.com/view_61.html本文以x86 win64 DM8为例安装完毕后打开DM数据库配置助手创建数据库,设置字符集utf8,去除字符大小写敏感创建表空间及用户,最好是一个库对应一个用户一个表空间,创建用户时需要指定对应表空间需要对用户分配DBA操作权限数据表迁移针对现有项目或框架库需要同步迁移到达梦数据库,本文以mysql5.7为例,打开DM数据迁移工具,注意保持对象名大小写,选择表时全部取出再全选,迁移的表名
2022-01-08 15:52:43
5110
3
springboot实现web系统Licence验证
2018-08-07
linux相关软件.rar
2021-08-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅