自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Muscleheng的博客

一路欣赏一路行,不错过每一处风景!

  • 博客(107)
  • 资源 (10)
  • 收藏
  • 关注

原创 Aop+自定义注解对入参进行操作(过滤、解密)

背景:对外提供接口,为了数据安全,接口入参进行了数据加密,接口收到参数后需要进行解密;如果每一个接口都要对入参进行一 一的解密操作,就大大增加了代码量和工作量;所以,这里使用自定义注解加Aop进行无侵入式的操作;第一步:自定义注解package com.example.demo.common;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.ann

2020-07-21 17:44:47 4361

原创 jvisualVM分析jvm内存使用快照dump

服务发生内存溢出,就需要查看服务器上Java服务的jvm堆内存使用情况,可以使用dump命令生成dump文件,然后下载到本地,然后使用jvisualVM工具打开,即可实现可视化分析。生成dump文件常用的两种方式:第一种:使用命令直接生成。第二种:java -jar启动服务的时候添加dump参数,服务发生内存溢出时自动生成。

2024-04-14 23:00:16 810 1

原创 jvisualVM远程连接jstatd

使用本地的jvisualvm工具远程连接jstatd。jvisualVM远程连接jstatd一般作为临时监控使用,例如:测试环境做压力测试时需要监控内存、以及其他的指标使用情况;线上服务出现内存使用异常等。如需要功能更全面,更规范的监控方式,可使用一些第三方监控服务,例如:Spring Boot Admin。

2024-04-14 20:33:29 503

原创 springcloud gateway网关动态配置限流

这里简单记录一下gateway网关集成mybatisPlus实现动态限流。gateway网关默认的限流方式各项限流参数都是在配置文件中配置,不够灵活,虽然使用阿里的Sentinel组件可以实现从nacos注册中心、配置中心动态读取配置,但是还是有一定的局限性。

2024-03-13 22:46:11 604

原创 spring-boot-maven-plugin springboot打包配置问题

springboot项目的pom文件中一般都配置了spring-boot-maven-plugin打包插件,一般情况下,只需要映入 spring-boot-maven-plugin 依赖即可,但是某些情况下还是需要额外配置部分参数。

2024-03-10 19:53:50 632 1

原创 jar运行报错Unable to read meta-data for class

项目在idea中运行没有任何问题,但是打包部署后就报错了,报错:java.lang.IllegalStateException: Unable to read meta-data for class com.zhh.zhhd.biz.config.Test1Config

2024-03-10 18:03:22 1160

原创 springcloud gateway网关

gateway网关功能:服务路由、负载均衡、请求限流、跨域问题统一解决配置、身份认证和权限校验等下面记录一下gateway网关的基本功能和配置。PS:没有使用注册中心。

2024-03-02 13:38:45 516

原创 spring-boot-starter-parent和spring-boot-dependencies介绍

springboot项目的pom文件中,我们经常看见这样(下图)两种springboot的版本依赖管理方式;图片中的这两种依赖声明方式任意用其中一种都可以。文章后面会简单阐述一下区别和使用场景。

2024-03-02 01:42:49 1220

原创 SpringCloud gateway限流无效,redis版本低的问题

在使用springCloud gateway的限流功能的时候,配置RedisRateLimiter限流无效,后来发现是Redis版本过低导致的问题,实测 Redis版本为3.0.504时限流无效,改用7.0.x版本的Redis后限流生效。gateway配置RedisRateLimiter限流,限流过程中会有key存储在Redis中,可以在Redis客户端使用命令 keys * 查看存储的key,key消失得特别快,可以在压测该过程中查看。

2024-03-01 20:59:59 523

原创 RedisTemplate序列化

RedisTemplate默认使用的是JDK 序列化方式(JdkSerializationRedisSerializer) ,这种序列化方式可以不用在配置类里配置,默认即可,这种不推荐使用,这种方式对应客户端来说可读性差,不利于人工排查问题。所以一般用JSON序列化,JSON序列化方式又有两种,GenericJackson2JsonRedisSerializer和Jackson2JsonRedisSerializer,GenericJackson2JsonRedisSerializer配置更简单方便些。

2024-01-01 11:47:46 835

原创 aop使用自定义注解报错 cannot resolve symbol

aop使用自定义注解报错 cannot resolve symbol '*',自定义一个注解 AuthTest,在aop场景下使用:@annotation(原因:如果自定义注解和aop类在同一个包下,@annotation中就可以只写注解名称,否则注解里面需要写全路径,例如:@annotation(")结果自定义注解报红。

2023-12-04 22:19:07 218

原创 解析html生成Word文档

代码实现逻辑:使用jsoup读取并解析html文件,然后使用poi生成Word文档。

2023-11-11 20:47:47 376

原创 计算两个时间的时间差(天、时、分、秒)

计算两个时间的时间差,通过计算得到星期、天、时、分、秒,这种场景多得离谱,一个方法就搞定。

2023-11-03 22:54:46 688

原创 GitHub经常打不开或者访问解决办法

访问慢或无法访问的原因:DNS解析是最为基础的一个环节。由于Github的服务器在全球各地,域名解析所需的时间也会不同,这就导致了在特定地区可能会出现Github无法正常访问的情况。解决:查询到github对应的IP,然后在hosts中配置IP和域名的对应关系,就相当于告诉浏览器目标地址在哪里了。可以ping命令: ping github.com 试一下,刚刚配置的域名IP映射已经生效。文件位置:C:\Windows\System32\drivers\etc。打开hosts文件,追加下面文本到末尾保存。

2023-10-30 21:03:24 1591

原创 读取yaml文件的值

记录一下,读取yaml文件中属性的值,这里用Kubernetes的deployment.yaml文件来举例。读取yaml文件中的image的值。

2023-09-17 15:35:58 198

原创 获取spring容器中的bean实例

在开发过程中,我们可能需要动态获取spring容器中的某个bean的实例,此时我们就会用到ApplicationContext spring应用上下文,这里做一下记录,网上很多类似的的工具类。先写好工具类再测试一下是否好用。创建一个bean并注入到容器。

2023-09-17 14:45:18 307

原创 Java判断文件的系统格式编码格式

使用Java判断一个文件的系统格式(亲测可用!),比如我们常见的:Windows格式的文件,Unixg格式的文件,Mac格式的文件;常常有这样的场景:我们在Windows系统编写的脚步上传到Linux系统执行,执行过程中偶尔会出现各种各样奇怪的问题,然后还找不到原因!好了,大概率是脚本格式问题。1.如果有notepad++,直接打开查看右下角,既可以查看当前的文件系统格式,也可以直接点击修改。

2023-08-05 17:02:23 1102

原创 base64: invalid input

类似的编码问题经常出现,比如:在windows平台下创建的shell脚本、文本、文件等等默认都是windows的编码格式,在上传到Linux平台之前或者上传之后记得最好是转一下格式。场景:把一个文件转成了base64字符串,并且存储在一个文本文件中,现在要使用命令把她转回去。2.Notepad++, 窗口右下角有Windows(CRLF)字样,这就是当前文本的编码格式,右键可以选择需要转换的编码。是因为文本编码的问题,文本是在windows平台下创建的,默认编码是windows编码,需要转为Unix编码;

2023-07-17 17:18:46 1621

原创 2个好用的ftp和ssh工具推介

2个好用的ftp和ssh工具推介

2023-07-08 13:15:43 783

原创 使用try catch干掉if else

阿里巴巴开发手册不建议使用try cath处理业务逻辑,但是实际开发过程中使用try catch代理if else往往会起到事半功倍的效果。一个简单的场景(实际开发过程中肯定比较复杂):现在要对一个字符串进行多重校验,每个校验写一个方法,然后挨个调用这些方法,一个校验通过后进行下一个校验,直到结束为止。如果使用常规写法,会出现大量的判断和处理逻辑。

2023-07-01 11:12:40 986

原创 Spring Boot @RestControllerAdvice 全局异常处理

利用注解@RestControllerAdvice 轻轻松松实现全局异常处理

2023-05-27 17:41:37 268

原创 清理日志文件的shell

清理文件的shell,以清理Nginx日志文件为例:

2023-02-27 16:05:50 342 1

原创 计算两个日期相差天数

计算两个日期相差天数

2023-02-27 16:02:04 714

原创 maven本地仓库有依赖包,还会远程下载的问题

明明本地有需要的依赖包,但是maven还是会从远程仓库拉取,如果远程仓库有需要的包还好,如果没有,或者无网络环境下没法访问远程仓库,那就直接报错,走不下去了。原因:在本地仓库的每个依赖包都存在这样的文件:_remote.repositories_remote.repositories中记录了依赖的来源,记录了settings.xml中的id,如果settings.xml中的id发生了变化,就需要从远程仓库重新获取依赖。

2022-12-28 22:07:50 11608 7

原创 springBoot发送邮件

spring boot 发送邮件的实现

2022-12-20 14:15:14 602

原创 自己实现图形验证码

这里不需要依赖开源组件包,完全自己实现图形验证码功能。

2022-12-09 17:49:17 905

原创 SpringBoot生成图形验证码

需求:验证码一码一用,验证之后,不管是成功还是失败,都需要重新获取或者刷新二维码。大致思路:后端生成验证码后还需要生成一个UUID与之对应,存储到缓存(记得添加过期时间),把UUID和验证码反给前端,登录时后端使用前端传过来的UUID去缓存获取验证码,然后和前端传过来的验证码对比(一般忽略大小写)。

2022-12-09 17:21:58 2957

原创 springboot中使用webservice服务

SpringBoot项目中使用WebService服务完整示例

2022-11-11 18:27:19 1553

原创 delegate IDE build/run actions actions to Maven

idea中maven项目可以打包成功但是idea不能运行

2022-07-05 11:10:18 10011 5

原创 SpringBoot 在启动时执行某些方法

SpringBoot 在启动时执行某个方法,利用@PostConstruct 和 CommandLineRunner 或 ApplicationRunner

2022-06-30 18:01:45 5309

原创 swagger2的全新UI组件Knife4j

前后端对接,就得有一个好的的接口文档,具体到:接口的名称,说明,入参字段,出参字段,是否必传,参数类型等等,这里记录一下使用的swagger ui组件 knife4j-spring-ui。knife4j-spring-ui 是swagger的一个增强版,相比官方ui,其界面更美观,功能更强大,字段说明更清晰直观,测试起来更方便对比一下:官方UI:全新UI:集成在sprintboot项目中一、pom文件添加依赖 <!-- 封装了swagger2 -->.

2022-04-08 17:21:20 4388

原创 Java组装树结构

应用场景,数据库表里的多条数据互为父子级关系,现要对他们进行组装,形成树形结构的数据,需要到达如下效果:[ { "parentId": "0", "name": "一级目录1", "id": "10", "children": [ { "parentId": "10", "name": "二级目录1", "id": "20", "children": [] } ] }, { "parentId": "0", "name":

2022-03-25 15:12:23 4030 1

原创 Java配置类似Nginx方式的静态资源访问

应用场景:文件存储在服务器的指定目录,需要通过浏览器访问,一般会使用Nginx来做静态资源服务器,浏览器访问到Nginx后,Nginx匹配到对应的URL后会转发到对应的文件路径,例如:一、Nginx配置静态资源服务 server { listen 80; server_name 127.0.0.1; # 匹配访问的URL前缀 location /f1/ { # 静态资源存储路径 alias D:/data2/; } lo

2022-03-24 18:06:06 4630

原创 应用工具推荐phpStudy(小皮面板)

推荐应用:官网地址 xp.cn小皮面板(PhpStudy)真是一个好东西,集成了各种常用应用,一般当我们拿到一台全新的电脑,为了满足日常本地使用,都会安装一堆应用,例如:MySQL,Redis,Nginx、ftp客户端等等。这个时候,安装一个小皮面板(PhpStudy)应用就相当于安装了一批我们常用的应用,例如:MySQL、Redis、Nginx、Apache、ftp客户端、PHP、HeidiSQL数据库客户端等等,而且可以随意选择版本进行安装 大致界面如下:1.主界面PhpS..

2022-03-22 15:49:37 19948

原创 idea MyBatisGenerator自动生成代码

mybatis-generator生成代码是非常方便的,实现方式也是非常多,我最常用的就是在idea中使用,只需要简单的几步操作就能得到想要的dao接口、实体类、SQL xml文件。idea自带了mybatis-generator插件具体步骤如下:...

2022-03-11 18:46:34 4283 3

原创 shell命令,curl调用接口中文乱码问题解决

shell命令,curl调用接口中文乱码问题解决

2021-12-24 18:12:24 5089

原创 gitLab hooks简介和简单使用

Git Hooks 就是在Git执行特定事件(如commit、push、receive等)后触发运行的脚本Git Hooks 能做什么Git Hooks是定制化的脚本程序,所以它实现的功能与相应的git动作相关,如下几个简单例子:1.多人开发代码语法、规范强制统一2.commit message 格式化、是否符合某种规范3.如果有需要,测试用例的检测4.服务器代码有新的更新的时候通知所有开发成员5.代码提交后的项目自动打包(git receive之后) 等等简介Git hooks大

2021-12-21 15:03:31 3031

原创 git hooks自定义路径

提交代码时,commit message 是非常重要的,如果随意编写提交msg,后期查找问题非常头疼,所以有必要进行mgs规范化检查。关于commit message规范,很多公司都有规定,但是并没有强制约束。比如约定如下:如果要强制约束,就使用git自带hook功能。在项目的.git/hooks目录中可以看到以 .sample 结尾的文件,如果你想启用它们,移除这个后缀就可以激活,不满足条件就提交不了代码。但是:.git文件夹不会上传至远程仓库的,不受版本控制,也就是说,如...

2021-12-20 15:13:56 1197

原创 问题解决:java.lang.OutOfMemoryError: unable to create new native thread

线上项目有一天突然挂了,报错:java.lang.OutOfMemoryError: unable to create new native thread大概意思就是:创建的线程实在是太多了,已经无法创建新的线程了。开始排查问题:一、网上查资料得到的答案几乎都一样,但是都没用,如下:调整JVMMemory内存大小、调整服务器的最大线程数等等。二、仔细查看error日志,结合业务代码排查根据error日志的堆栈信息找到抛出异常的代码块,并没有发现什么问题;因为业务代码这个地方并不存

2021-11-23 16:11:37 2030

原创 Spring Boot Admin配置安全验证

上一篇写了Spring Boot Admin的搭建spring boot admin 搭建(非常简单)_Muscleheng的博客-CSDN博客但是没有登录验证,如果线上使用,肯定是不安全的,这里记录一下添加登录验证,非常简单一、服务端(server端)1. pom文件添加依赖 <!--springboot admin 安全相关--> <dependency> <groupId>org.springframework.boot</gr.

2021-11-23 11:48:26 1334

apache-maven-3.6.3

apache-maven-3.6.3包含linux和windows版本(.tar.gz和zip包)

2024-04-12

Navicat12安装包.zip

Navicat12安装包,自己就在用,百分百可用;压缩包打开后是安装程序和补丁;Navicat Premium 12是一套数据库开发管理工具,支持连接MySQL、Oracle、SQL server、PostgreSql等多种数据库

2020-07-02

solr定时同步jar包.zip

该jar包(solr-dataimportscheduler-1.2.jar)实现了solr数据同步的增量、全量同步,还添加了登录验证功能,同时还包含了源码,亲测可用

2020-05-22

ik-analyzer-8.3.0分词插件.zip

solr默认没有中文分词功能,需要自己配置中文分词插件,这个ik-analyzer-8.3.0.jar完美集成

2020-05-22

eclipseSVN-site-1.10.11.zip

SVN整合MyEclipse 1 下载插件 site-1.10.11.zip 2 MyEclipse 点击菜单栏Help–>Install from Site 3 点击add,输入svn 然后找到下载好的安装包 site-1.10.11.zip 4 选中Subclipse和SVNKit,点击next,next,知道finish 5 忽略警告,点击ok 6 提示重启,点击yes,重启后生效 7 重启完成后点击myeclipse上方window选择showview,搜索svn

2020-02-23

HttpClient所需jar包

httpclient jar包是一款能够支持HTTP协议最新的版本和建议的扩展包,为Java开发人员提供了高效的、最新的、功能丰富的HTTP协议,还能处理各种HTTP相关的问题,支持所有的http方法、自动转向、https协议、代理服务器等功能,为JAVA开发工作带来更多便捷

2019-03-07

ant-1.8.2.jar

apache的工具类jar,包含了我们常用的各种工具,比如文件的操作、发送邮箱等等

2018-12-26

基于Java FX实现的可视化排序算法

基于Java FX实现的可视化排序算法,开发工具:Eclipse,JDK版本:1.8, 下载后在eclipse上添加JavaFX 插件就可以使用。演示地址: https://blog.csdn.net/Muscleheng/article/details/82285813

2018-09-01

SQLite3完整安装包

SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 直接访问其存储文件。

2018-07-25

Mybatis自动映射工具

Mybatis自动映射工具,该工具可自动生成相应的映射文件(xml文件、java文件)

2018-07-19

jquery.placeholder.js

使用该插件(jquery.placeholder.js)解决IE9及以版本下对placeholder的兼容性问题

2018-07-19

空空如也

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

TA关注的人

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