自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(97)
  • 资源 (2)
  • 收藏
  • 关注

原创 分享我的java jar包方式全功能参数shell发布脚本

全功能参数shell发布脚本

2025-03-19 08:43:59 215

原创 Linux 如何上传本地文件以及下载文件到本地命令总结

如果你希望在 Shell 终端中**将远程服务器上的文件下载到本地电脑**,可以使用以下工具和命令...

2025-03-17 17:04:22 494

原创 RCE远程代码执行漏洞

“RCE(远程代码执行)漏洞”是指攻击者能够在目标系统上执行任意代码的漏洞,通常通过网络进行远程攻击。RCE 漏洞的危害非常大,攻击者通过这个漏洞可以控制目标机器,获取系统权限,执行恶意命令,甚至窃取敏感数据、植入恶意软件等。

2025-02-27 14:28:04 808

原创 Spring的MutipartFile 会直接将流转成文件存放在临时目录嘛?

Spring 的 `MultipartFile` 默认会将上传的文件存储到临时目录。具体行为取决于底层的 `MultipartResolver` 实现。

2025-02-27 14:17:30 203

原创 人体工学椅用的网布为什么那么坚固耐用?

人体工学椅的网布通常使用以下几种高强度合成材料制成:- **尼龙(Nylon)**:耐磨性强,抗拉伸能力优越,且具有良好的弹性和耐用性。 - **聚酯纤维(Polyester)**:抗撕裂能力强,不易变形,耐久性好,且具备一定的防水防污性能。 - **聚氨酯(PU)/热塑性弹性体(TPE)**:柔韧性高,舒适透气,常用于高端工学椅。 - **凯夫拉(Kevlar,芳纶)**(部分高端型号)**:与防弹衣相同的材料,超高耐磨和抗撕裂性能,寿命极长。

2025-02-18 16:22:26 411

原创 Linux nohup 命令完全指南:让进程永不掉线

`nohup`(No Hang Up)是 Linux/Unix 系统中用于**忽略挂断信号(SIGHUP)**的命令,能让进程在终端关闭后继续运行。配合 `&` 符号使用,可实现后台任务的无中断执行。

2025-02-17 10:10:03 1114

原创 Linux 远程文件复制传输-----scp/rsync/sftp

`scp`(Secure Copy Protocol)是基于 SSH 的安全文件传输工具,可用于在本地和远程计算机之间复制文件或目录。

2025-02-13 15:13:27 571

原创 30分钟内搭建一个全能轻量级springboot 3.4 + 脚手架 <6> 5分钟集成好前端页面

**注意: 静态资源能访问的前提是权限要放开,配置的拦截器、filter、shiro、spring security都要把静态资源的权限放开才行**1. 把直接丢进resources/public目录就能直接访问了2. resoucehandler 配置前端访问目录和路由映射3. thymeleaf 框架4. 模版引擎驱动前端页面

2025-01-16 09:53:48 126

原创 30分钟内搭建一个全能轻量级springboot 3.4 + 脚手架 <5> 5分钟集成好caffeine并使用注解操作缓存

在 Spring Boot 中,注解操作缓存的原理基于 Spring 的缓存抽象 (Spring Cache Abstraction)。使用缓存注解时,Spring 会自动处理与缓存相关的逻辑,而开发者只需要专注于业务代码。常用的缓存注解有 @Cacheable、@CachePut 和 @CacheEvict。

2025-01-15 17:58:32 758

原创 Springboot 注解缓存使用教程

Spring Boot 提供了强大的缓存抽象,开发者可以通过注解快速实现缓存功能,从而提高系统性能。本教程将全面介绍 Spring Boot 提供的缓存相关注解及其作用,并结合示例讲解实际应用。

2025-01-15 16:24:43 514 1

原创 30分钟内搭建一个全能轻量级springboot 3.4 + 脚手架 <4> 5分钟集成好mybatisplus并使用mybatisplus generator自动生成代码

MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。这篇文章将会讲解如何快速集成mybatis-plus并且使用代码生成工具自动生成代码。

2025-01-15 14:52:58 81

原创 30分钟内搭建一个全能轻量级springboot 3.4 + 脚手架 <3>5分钟集成好druid并使用druid自带监控工具监控sql请求

Druid 是一个 JDBC 组件库,包含数据库连接池、SQL Parser 等组件, 被大量业务和技术产品使用或集成,经历过最严苛线上业务场景考验,是你值得信赖的技术产品。这篇文章将会介绍如何继承druid并且配置好druid监控。

2025-01-15 14:08:58 191

原创 30分钟内搭建一个全能轻量级springboot 3.4 + 脚手架 <2> 5分钟集成好最新版本的开源swagger ui --- knife4j,并使用ui操作调用接口

集成 `knife4j` 非常便捷,只需要加入官方依赖,然后简单配置即可。这里只展示简单的配置,更多的配置可参考 `knife4j` 官网文档进行修改。

2025-01-15 09:51:23 184

原创 30分钟内搭建一个全能轻量级springboot 3.4 + 脚手架 <1> 5分钟快速创建一个springboot web项目

我们开发项目的第一步就是要搭建一个适合业务系统技术栈的脚手架,那么今天就来介绍如何快速搭建一个适合我们的万能轻量级的脚手架,包含前后端的开发,服务监控,接口管理等等。技术栈采用用Springboot 3.4.1 + druid + spring task + mybatis + mybatis generator + swagger(新版swaggerUI) + mysql + SpringbootAdmin + vue2 + element.

2025-01-14 17:40:07 1060

原创 Linux 上如何做MySQL数据备份

`crontab`(cron table 的缩写)是 Unix/Linux 系统上用于设置周期性被执行的任务的工具。它允许用户定义需要在特定时间(比如每天凌晨、每周的某个时间等)自动运行的脚本或命令。这些任务被保存在一个叫做 crontab 的文件中,该文件位于用户的家目录下的 .crontab 文件中(对于系统级的任务,则可能保存在 /etc/crontab 或 /etc/cron.d/ 目录下)。

2024-09-03 21:16:11 898 1

原创 为什么volatile能保证有序性不能保证原子性?

对于内存模型的三大特性:有序性、原子性、可见性。大家都知道volatile能保证可见性和有序性但是不能保证原子性,但是为什么呢?

2024-09-02 17:48:31 1624

原创 如何排查JVM线程死锁和JAVA应用OOM问题?

控制javacore的输出有两种方式,第一种是通过`kill -3 [pid]`来输出java当前运行时的javacore线程信息。第二种是通过jstack命令来输出Javacore文件。先面我们分开讲解两种方式如何操作。第三种方式就是容器自带脚本,在OOM或CPU资源占用过多的情况下会自动输出javacore到指定目录,比如说websphere等等容器。

2024-06-04 23:55:58 490 1

原创 手把手教你如何一键发布项目到服务器

我们平时都是走jenkins或者是openshift这种k8s平台来打包java应用,但对于小项目来说部署jenkins和openshift消耗的精力很多,并且如果我们是小型项目的话,在测试环境根本用不到这种发布方式,特别是一个人开发后端的情况我们希望服务器能够快速响应发布,快速进行调试。那么如何通过本地命令直接将应用发布到服务器呢?比如:本地运行deploy.bat 直接就能发布项目到测试环境,且所有的流程都是自动化的...

2024-06-03 21:32:34 368

原创 学习Maven看完这篇就够了

Maven 是一个强大的Java项目管理工具,由Jason van Zyl在2002年创建,最初是为了简化Apache Jakarta Turbine项目构建过程而设计的。它后来成为Apache软件基金会的一个项目,并迅速成为Java开发的标准工具之一。Maven的核心理念是通过项目对象模型(Project Object Model,简称POM)来管理和构建软件项目。

2024-06-02 18:07:24 305

原创 手把手叫你封装一个适用于Springboot的Swagger UI组件

Swagger 原生UI存在的缺点① 不够方便直观swagger ui 布局是上下瀑布式的,比如我访问完A接口,想访问B接口,访问完B接口想继续访问A接口就必须往上翻,接口少还好操作。接口多的话来回就很烦。② 请求的参数没有缓存③ 不够美观④ 如果是JWT 无状态登录,Swagger使用起来就没有那么丝滑了,因为JWT无状态登录这种需要每次在请求的Header中带上TOKEN,Swagger可没那么只能给你登录接口返回的token带过去,这样就导致无状态session的情况下Swagg...

2024-05-21 17:10:09 367

原创 【算法一则】【动态规划】求二维数组可组成的最大正方形

在一个由 '0' 和 '1' 组成的二维矩阵内,找到只包含 '1' 的最大正方形,并返回其面积。这道题目要求找出给定二维字符数组中最大正方形的面积。我们可以使用动态规划的方法来解决这个问题。

2024-04-26 17:19:23 514

原创 【算法一则】【贪心】数组中的数可以拼装成的最大数

给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。

2024-04-26 08:58:28 438

原创 Springboot 中RedisTemplate使用scan来获取所有的key底层做了哪些事情

每次迭代next()都要判断是否数据集中还有数据,没有的话去redis中通过游标取下次一的数据集(2条)。然后将获取到数据集迭代器替换到游标中,上一个数据集回收(防止内存过大),使迭代器可以正常流转。

2024-04-24 14:50:57 3620

原创 【做算法学数据结构】二叉树的层序遍历【二叉树】

`二叉树`是一种常见的树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的特点是每个节点最多有两个子节点,并且子节点的顺序是有序的,即左子节点在前,右子节点在后。

2024-04-24 14:01:27 1518

原创 【算法一则】反转链表

给你单链表的头指针 head 和两个整数 left 和 right ,其中 left

2024-04-22 09:08:08 262

原创 【做算法学数据结构】【链表】删除排序链表中的重复元素

当涉及到数据结构时,链表是一种常见且重要的数据结构。链表由一系列节点组成,每个节点包含数据和指向下一个节点的引用。相比于数组,链表的大小可以动态地增长或缩小,因为每个节点只需要存储自己的数据和指向下一个节点的引用。

2024-04-18 09:57:52 969

原创 【算法一则】矩阵置零 【矩阵】【空间复用】

给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。

2024-04-17 17:24:32 1462

原创 【算法一则】编辑距离 【动态规划】

给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:①插入一个字符②删除一个字符③替换一个字符

2024-04-16 14:53:53 973

原创 【算法一则】分隔链表

给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。

2024-04-15 09:59:05 350

原创 【算法一则】做算法学数据结构 - 简化路径 - 【栈】

给你一个字符串 path ,表示指向某一文件或目录的 Unix 风格 绝对路径 (以 '/' 开头),请你将其转化为更加简洁的规范路径。在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (..) 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。任意多个连续的斜杠(即,'//')都被视为单个斜杠 '/' 。 对于此问题,任何其他格式的点(例如,'...')均被视为文件/目录名称。

2024-04-12 16:20:05 1066

原创 【算法一则】- 插入区间 - 数组

给你一个 无重叠的 ,按照区间起始端点排序的区间列表 intervals,其中 intervals[i] = [starti, endi] 表示第 i 个区间的开始和结束,并且 intervals 按照 starti 升序排列。同样给定一个区间 newInterval = [start, end] 表示另一个区间的开始和结束。

2024-04-11 16:06:31 493

原创 Redis 由浅入深 (3) - Redis的两种持久化方式RDB和AOF

RDB和AOF是Redis中的两种持久化方案。RDB是一种快照式持久化机制,将Redis数据集以二进制形式保存到RDB文件中,适用于快速备份和恢复。AOF是一种日志式持久化机制,将写命令以追加的方式记录到AOF文件中,适用于数据完整性要求较高的场景。RDB持久化具有快速、紧凑的特点,但可能导致数据丢失。AOF持久化具有高可靠性和数据完整性,但写入性能较低。根据实际需求,可以选择适合的持久化方案或同时使用两种方案,以确保数据的安全性和可靠性。

2024-04-11 13:53:46 310

原创 【算法一则】贪心加双指针-盛水最多的容器

给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。

2024-04-09 16:31:17 1441

原创 手撸一个简单的雪花算法生成自增id

雪花算法(Snowflake)是为了解决分布式系统中生成全局唯一ID的需求而设计的。在分布式系统中,如果多个节点同时生成ID,传统的自增ID或随机数ID可能会导致ID冲突,因此需要一种算法来确保在不同节点、不同时间生成的ID都是唯一的。

2024-04-09 09:29:51 914

原创 Linux logrotate教程以及如何使用logrotate分割nginx访问日志

Logrotate 是一个用于管理 Linux 系统日志文件的工具。

2024-03-19 14:48:40 936

原创 Nginx运维命令总结及常见问题排查和解决方案

Nginx 如何忽略非标准http头检测?Nginx websocket代理Nginx 临时缓存不够导致下载文件失败Nginx 没有临时缓存目录权限导致下载文件失败Nginx非root用户启动无法使用80端口或者报无权限异常路由重写怎么配置?nginx 根据ip hash负载怎么配置?Nginx 日志输出怎么配置?Nginx 如何替换Html插入变量?

2024-03-07 13:42:43 2252

原创 缓存淘汰策略看完这篇就够了

LFU 算法是一种常用的缓存淘汰算法,具有简单易行、公平性等优点。但是,LFU 算法也存在不准确、空间复杂度高等缺点。在实际应用中,可以根据具体的应用场景选择合适的缓存淘汰算法。LRU 算法是一种常用的缓存淘汰算法,具有简单易行、有效性等优点。但是,LRU 算法也存在不公平性、空间复杂度高等缺点。在实际应用中,可以根据具体的应用场景选择合适的缓存淘汰算法。LRU 算法可以用链表或哈希表来实现。LRU 算法可以与其他缓存淘汰算法结合使用,例如 LFU 算法。

2024-03-05 11:28:09 1862

原创 Redis 由浅入深 (7) - redis集群操作手册

常见的redis集群操作命令总结,以及一些常见的运维命令。

2024-03-04 13:47:32 1177 1

原创 Redis 由浅入深 (6) - Redis批量删除key

日常工作当中经常会遇到删除Redis key的问题,如果是删除某个key,使用 DEL keyname 或者 EXPIRE keyname ttl 都可以实现。但如果想要一次性删除多个key应该怎么处理呢?Redis本身并不支持批量删除key的操作,下面我们就来看看如何巧妙地处理这类问题。

2024-02-29 16:08:02 1938

原创 递归读取文件夹下的所有文件

递归遍历文件夹下所有文件

2024-02-19 10:51:41 978

全能纯净版springboot脚手架

全能纯净版springboot脚手架

2025-01-16

【JAVA WEB实用技巧与优化方案】如何排查JVM线程和内存相关问题

javacore分析工具、heapdump分析工具

2024-06-05

【JAVA WEB实用技巧与优化方案】如何排查JVM线程和内存相关问题

javacore分析工具

2024-06-04

【JAVA WEB实用技巧与优化方案】如何排查JVM线程和内存相关问题

内存dump分析工具

2024-06-04

封装swagger组件,提供全新UI以及无状态登录接口调用解决方案

解决swagger原始ui一下缺点: ① 不够方便直观 swagger ui 布局是上下瀑布式的,比如我访问完A接口,想访问B接口,访问完B接口想继续访问A接口就必须往上翻,接口少还好操作。接口多的话来回就很烦。 ② 请求的参数没有缓存 比如我想掉一个post接口来伪造一条数据,第一次访问完成之后,刷新页面后第二次还要重新造数据,就很麻烦,命名我只需要改部分字段重新请求就行,结果每次都要重新填写报文。字段躲起来兼职就是折磨。 ③ 不够美观 不用多说,当然一个工具类产品美观并不重要,但是美观的产品还是能给人带来心情愉悦的体验,就像你旁边坐着一位漂亮女孩,你整天心情都会好很多。不管如何对我来说工具颜值还是挺重要的。 ④ 如果是JWT 无状态登录,Swagger使用起来就没有那么丝滑了,因为JWT无状态登录这种需要每次在请求的Header中带上TOKEN,Swagger可没那么只能给你登录接口返回的token带过去,这样就导致无状态session的情况下Swagger的调试功能等于瘫痪状态。

2024-05-21

swagger-bootstrap-ui

使用bootstrap重写的swaggerui

2024-05-21

前端一个包就能从测试晋级生产的配置方案

前端打同一个包从测试晋升到生产环境的方案,是一种高效、可靠且易于维护的部署方式。在这种方案中,前端代码在开发完成后,经过测试验证无误后,可以直接打包部署到生产环境,无需进行额外的配置或修改。这样可以减少部署过程中可能出现的错误和延迟,提高应用的可用性和性能。

2024-01-19

lombok 实现原理(代码)

可以参考:https://blog.youkuaiyun.com/yh4494/article/details/126871988 这篇文章进行学习交流。

2023-04-21

ElasticSearch Head 适配ElasticSearch 7.0 +

ElasticSearch UI操作工具、非常好用的ElasticSearch工具

2022-07-22

ElasticSearch 7.0 版本

ElasticSearch 7.0 版本

2022-07-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除