Java
文章平均质量分 71
程序员爱中国
一个有点小哲学思想的程序员
展开
-
consul服务注册与发现、服务配置与刷新
为什么要用服务注册?为什么要用consul不用eureka?原创 2024-04-24 16:39:50 · 995 阅读 · 1 评论 -
怎么定位慢SQL问题
开启慢查询SQL日志原创 2024-04-22 16:40:53 · 152 阅读 · 0 评论 -
Maven的dependencyManagement与dependencies区别
先说结论:Maven 使用dependencyManagement 元素来提供了一种管理依赖版本号的方式。原创 2024-04-18 11:50:00 · 439 阅读 · 0 评论 -
生产服务器变卡怎么排查
服务器变卡怎么排查,可以从以下四个方面去考虑。原创 2024-04-17 16:11:45 · 823 阅读 · 0 评论 -
Random random = SecureRandom.getInstanceStrong();堵塞线程问题解决
sonar扫描到使用Random随机函数不安全, 推荐使用SecureRandom替换,就是他–》【SecureRandom.getInstanceStrong()】,分别在本地,测试环境测过没问题上生产,但是运行了一段时间突然报错!然后还是像那个博主一样,一段一段代码的注释上测试环境才发现问题在哪里,坑就坑在这,在win10环境正常得很,一到linux上面就和个发病的一样生成随机数字卡顿,导致接口请求无响应。sonar推荐的不一定都是适合自己业务场景,只是站在了技术层面考虑,推荐的东西自己还是要慎用!原创 2023-06-15 17:28:21 · 825 阅读 · 0 评论 -
Calendar计算两个时间之间相差几个月
Calendar计算两个时间之间相差几个月原创 2023-02-24 18:25:26 · 993 阅读 · 0 评论 -
mongoTemplate Aggregation 多表联查 排序失效问题解决
mongoTemplate Aggregation 多表联查 排序失效问题解决原创 2023-02-23 15:27:04 · 523 阅读 · 0 评论 -
cannot deserialize from Object value (no delegate- or property-based Creator)
cannot deserialize from Object value (no delegate- or property-based Creator)原创 2023-02-20 17:23:34 · 119 阅读 · 0 评论 -
Web程序的调试与排错
欢迎大家再次来到我的博客看我写的一些小东西,感到非常荣幸哈,今天我要讲的是在使用Web应用出现的一些小bug的调试,那么现在就跟着我来吧。一、在运行Web程序时,常犯的一些错误有:1、未启动Tomcat服务,或者没有在预期的端口中启动Tomcat服务2、未部署Web应用,就试图运行Web程序3、运行时,URL输入错误4、存放文件的目录无法对外引用,如:文件放入了WEB-INF、...原创 2017-03-05 00:12:35 · 1283 阅读 · 1 评论 -
中文乱码问题
今天我简单的跟大家讲两种中文乱码的解决方法:1、在JSP页面的charset和pageEncoding的编码报纸一致,一般为“UTF-8”(在网页中出现乱码的现象)2、请求参数为中文(默认编码为ISO-8859-1)表单的method的post属性和get属性Post:request.setCharacterEncoding("UTF-8")因为代码是从上往下执...原创 2017-03-06 22:08:53 · 987 阅读 · 1 评论 -
报错:javax.servlet.http.HttpServlet
今天把eclipse的路径改了下,在重新新建jsp页面的时候报了以下javax.servlet.http.HttpServlet的错后来经过查度娘解决了,但是根本原因还是我自己有点小粗心忘记了细节,那么,接下来我给大家分享下这个bug的解决办法。1、选中你新建的项目然后右击选中Build Path点击2、选中Libraries中的Add Library'...原创 2017-04-27 09:47:11 · 3137 阅读 · 1 评论 -
RabbitMQ报错:connection error; protocol method: #method<connection.close>(reply-code=530, reply-text=N
目录场景说明报错信息解决办法场景说明项目是springboot结构,win10下安装RabbitMQ,自己配置的一个虚拟主机和用户账号,在RabbitMQ管理界面上有把虚拟主机分配给用户,但是没有把系统默认的Virtua lHost为【/】分配给用户造成的,所以解决办法把Virtua lHost为【/】分配给用户就可解决。报错信息connection error; protocol method: #method<connection.close>(reply-code=530, re.原创 2020-12-15 18:10:47 · 16056 阅读 · 25 评论 -
小记RabbitMQ:生产者提供消息出去之后,消费者没有接收到消息问题解决
目录场景描述如何解决场景描述springboot项目win10下安装的RabbitMQ非默认的虚拟主机和用户,均为自己创建配置在项目的yml文件中第一次使用时是用的默认的guest账密和server主机,生产者和消费者均为同样配置,然后尝试使用,自己在RabbitMQ配置的账密和虚拟主机之后,发现消费者接受不到消息,经排查后发现,生产者的配置为自创的虚拟主机,而消费者的还是默认的server主机【/】,所以修改之后,消费者可正常接收消息。如何解决在YML文件中生产者和消费者的Rabbit.原创 2020-12-15 18:24:42 · 5826 阅读 · 0 评论 -
mongoTemplate支持多表联查 排序 条件筛选 分页 去重分组
列表展示需要对mongo的两表进行连表查询,且根据两个不同的表中指定字段去排序分页展示,其中包含对两个表不同条件的筛选。原创 2023-02-14 16:52:39 · 1786 阅读 · 0 评论 -
springboot 针对rabbitmq多vhost情况处理
项目中在已接入rabbitmq一个vhost的基础上,需要再引入多个vhost进行消息处理,spring原来的支持以及满足不了,所以要重写。原创 2023-02-09 16:06:48 · 1413 阅读 · 1 评论 -
springboot 接入websocket实现定时推送消息到客户端
前端与后端websocket连接上后,多用户登录,后端根据不同用户定时发消息给前端用于展示。原创 2023-02-09 15:44:29 · 2210 阅读 · 0 评论 -
接口返回数据报错:No serializer found for class com.xxxxxx
返回数据报错:No serializer found for class原创 2023-02-08 13:49:51 · 1666 阅读 · 1 评论 -
git语义化定制版本规范
git语义化定制版本规范原创 2023-02-03 11:42:44 · 313 阅读 · 0 评论 -
json字符带有反斜杠\处理
json字符带有反斜杠\处理原创 2023-02-03 11:40:29 · 5645 阅读 · 0 评论 -
springboot引入flink,maven打包插件需替换
springboot引入flink,maven打包插件需替换原创 2023-02-03 11:38:28 · 552 阅读 · 0 评论 -
EasyExcel 实现 批量生成多sheet多Excel打包zip下载
导出学校中高年级的学生信息,根据班级名称分组,一个班级一个excel导出,如果多个excel需要打包成zip压缩包下载,一个excel里面存在多个sheet的情况。原创 2023-02-03 11:33:28 · 2017 阅读 · 0 评论 -
ObjectMapper的objectNode、ArrayNode各种转换使用
objectNode/arrayNode怎么获取节点数值,arrayNode怎么修改节点元素值,json转换objectNode后各种骚操作原创 2022-12-30 17:24:23 · 3822 阅读 · 0 评论 -
AD域用户认证登录(包含SSL)-UnboundID LDAP SDK方式
目录前言普通登录SSL登录 且 筛选获取某用户组下用户前言这篇比较精华,亲身踩坑两天完成,利用UnboundID LDAP SDK完成对AD域用户进行普通登录和ssl登录场景实现,挺实用来着。普通登录package com.example.demo.controller;import com.unboundid.ldap.sdk.LDAPConnection;import com.unboundid.ldap.sdk.LDAPException;import lombok.extern.s.原创 2022-02-14 17:03:38 · 3744 阅读 · 0 评论 -
模仿shiro接口鉴权,自定义注解+spring aop,实现用户访问接口权限校验
目录目的or背景码代码的工具人---is me1. 自定义一个校验权限的注解2. 码好咱们的切面3. 搞个api4. postman测试4.1 看书api4.2 添加书api目的or背景shiro有个注解是@RequiresPermissions,接口方法加上这个表示需要有指定权限才能访问,不然提示无权限访问等类似信息,这个吧,有点意思,没玩过,所以就来简单模仿下,自己自定义一个注解,具备指定权限才可调通。码代码的工具人—is me接下来就是demo实现1. 自定义一个校验权限的注解packa.原创 2021-11-27 11:11:06 · 866 阅读 · 0 评论 -
springboot + 本地缓存caffeine
目录使用场景使用引入maven缓存配置简单调用postman效果使用场景为什么会使用caffeine呢?项目部署到其他公司去,使用的缓存组件受到限制,不能使用redis,作为缓存的替换方案,caffeine就来了,就这么简单~使用引入maven老生常谈,maven搞起来<dependency> <groupId>com.github.ben-manes.caffeine</groupId> <artifactId>caf.原创 2021-05-17 15:12:34 · 1794 阅读 · 1 评论 -
EasyExcel 读取excel文件 java-demo
目录实现demo配置maven依赖java代码(埋了个小坑)1. Demodata类2. 表格的表头枚举类3. 配置EasyExcel监听器4. service5. serviceImpl6. controller接收的dto7. controller8. postman调用9. 效果图怎么解决坑1. 处理类2. 改造后的监听器3. 改造后的serviceImpl4. 效果图实现demo配置maven依赖<dependency> <groupId>com.alibaba.原创 2021-05-14 17:28:35 · 860 阅读 · 5 评论 -
springboot项目利用AOP完成接口请求日志输出
今天不想说废话,直接正儿八经的上教学,按照步骤来,没毛病~目录配置引入maven依赖代码效果图postman请求日志打印配置引入maven依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></dependency>代码import com.goo.原创 2021-05-11 17:28:04 · 1074 阅读 · 3 评论 -
踩坑最多的springboot详细整合jsp,springboot+jsp运行启动404、打jar包后访问404
目录项目背景1、搭建基础web架构和创建jsp2、controller跳转jsp3、配置文件相关总集3.1 yml配置3.2 pom配置3.3 IDEA启动项目配置4、结果展示4.1 IDEA启动项目运行访问jsp4.2 启动jar,访问jsp5、结束语这是一个充满悲伤的整合之旅,耗费时间…近7h,可能是我太菜,不过达到了需求,也不枉费,特此记录,以免后续忘记,一条充满404的泥巴坑路被我走出来了!!!我是大哥!!谁与争”疯“!!项目背景来了个需求,说要在原有的springboot项目基础上,引入j.原创 2021-04-22 17:29:22 · 3062 阅读 · 5 评论 -
springboot开启log4j2中的异步日志输出-全模式
目录1、引入maven依赖2、修改启动类或修改启动项目脚本2.1 修改启动类2.2 修改启动项目脚本1、引入maven依赖<dependency> <groupId>com.lmax</groupId> <artifactId>disruptor</artifactId> <version>3.4.2</version></dependency>2、修改启动类或修改启动项目脚本有两种方法,原创 2021-04-21 14:44:59 · 1240 阅读 · 0 评论 -
解决 java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BOOLEAN at line 1 column 5 path
解决方案问题场景问题场景其他同事A项目调用我方B项目的的sdk时报错这个问题A项目使用的版本是1.0.8,而sdk最新版本是1.0.14,最新的版本是解决了历史接口返回类型不规范的问题,历史接口部分为直接返回Response,而不是数据格式类型,所以在调用项目时,环境为最新代码,因此sdk旧版本返回参数异常报错,更新sdk最新版本即可所以,接收的类型与服务器实际返回类型不一致,需定时查看sdk版本更新。...原创 2021-04-12 16:01:56 · 1323 阅读 · 0 评论 -
java tcp/ip异常:java.io.IOException: 断开的管道
java tcp/ip异常1. java.net.SocketTimeoutException .2. java.net.BindException:Address already in use: JVM_Bind3. java.net.ConnectException: Connection refused: connect4. java.net.SocketException: Socket is closed5. java.net.SocketException: Connection reset原创 2021-04-09 11:40:31 · 10472 阅读 · 0 评论 -
超详细步骤Springboot 整合RabbitMq
该篇文章内容较多,包括有rabbitMq相关的一些简单理论介绍,provider消息推送实例,consumer消息消费实例,Direct、Topic、Fanout的使用,消息回调、手动确认等。 (但是关于rabbitMq的安装,就不介绍了)在安装完rabbitMq后,输入http://ip:15672/ ,是可以看到一个简单后台管理界面的。在这个界面里面我们可以做些什么?可以手动创建虚拟host,创建用户,分配权限,创建交换机,创建队列等等,还有查看队列消息,消费效率,推送效率等等。以上这些管理.转载 2021-03-11 16:01:09 · 2405 阅读 · 0 评论 -
文件上传、单个文件下载、多个文件打包zip下载demo实现
目录准备工作说明文件上传单个文件下载多个文件打包zip下载文件上传、单个文件下载、多个文件打包zip下载-完整controller实现准备工作说明将实现demo需要的相关util先准备好,完整controller代码在最后,如果想节省时间可以直接跳过单个demo的说明。package com.example.demo.util;import javax.servlet.http.HttpServletResponse;import java.io.*;import java.util.Lis.原创 2021-01-05 13:51:39 · 302 阅读 · 2 评论 -
swagger中json-api文档通过Java代码转化为markdown格式
目录依赖引入Java实现依赖引入 <!--将swagger转成md文档start--> <dependency> <groupId>io.github.swagger2markup</groupId> <artifactId>swagger2markup</artifactId> <version>1.3.1</versio.原创 2020-12-29 11:51:16 · 1300 阅读 · 0 评论 -
Node Java相互使用AES-128-GCM对数据进行加密解密实现
目录Node代码Java代码Node代码let crypto = require('crypto');//偏移量 16位const iv = "0123456789ABCDEF";//密钥const key = "0123456789ABCDEF";//加密function encodeAes(word) { if (!word) { return '' } if (typeof word != 'string') { word.原创 2020-12-08 13:45:28 · 3992 阅读 · 5 评论 -
Node Java相互使用AES-256-CBC对数据进行加密解密实现
目录Node代码Java代码Node代码/** * 加密,解密方法 * */let crypto = require('crypto');/** * 加密解密方式 */let algorithm = 'aes-256-cbc';let key = '9815c9e69268bc2fc2085c1lc6q75a42';let charset = 'utf8';let cipherEncoding = 'base64';let iv = '9183296589LSCQEG'.原创 2020-12-07 11:38:19 · 2362 阅读 · 0 评论 -
Node Java相互使用AES-128-ECB对数据进行加密解密实现
目录Node代码Java代码Node代码import CryptoJS from 'crypto-js'//秘钥,必须由16位字符组成let secretKey = "aaaabbbbccccdddd"/** * AES加密方法 * @param content 要加密的字符串 * @returns {string} 加密结果 */function Encrypt(content) { let key = CryptoJS.enc.Utf8.parse(secretKey).原创 2020-12-07 11:29:49 · 2044 阅读 · 1 评论 -
List集合转化为Tree父子节点结构数据的demo实现
目录前言说明效果图数据库脚本表结构初始化数据代码实现beandaomapper转化Tree的工具类serviceserviceImplcontroller访问接口前言说明此文章是衔接MySQL根据父子节点向上/向下递归查询SQL实现Demo的后续,在上篇文章中我们知道了怎么在数据库中去通过递归函数,向上或者向下递归查询节点数据,那么这篇文章是一个比较完整讲解了从数据库出来的数据,怎么转化为Tree结构的数据返回给前端,效果图可见下图。效果图根据父节点递归查子节点数据库查询图和代码转化为Tree结.原创 2020-11-06 17:59:34 · 1810 阅读 · 5 评论 -
POI导出表格Java代码实现
POI导出表格1. 引入依赖2. Excel导出核心代码2.1 核心代码导入包2.2 核心util代码2.3 Controller表格导出实现3. Excel导出结果展示3.1 导出链接3.2 导出结果1. 引入依赖 <!--poi导出start--> <!-- excel --> <dependency> <groupId>org.apache.poi</groupId>原创 2020-10-09 10:58:20 · 354 阅读 · 0 评论 -
判断字符串是否是json对象或json对象集合
字符串判断-jsonjson对象判断json对象集合判断json对象判断public static boolean isJsonObject(String content) { try { JSONObject jsonStr = JSONObject.parseObject(content); return true; } catch (Exception e) { return false;原创 2020-10-09 10:34:24 · 5254 阅读 · 4 评论