- 博客(94)
- 资源 (6)
- 收藏
- 关注
原创 springboot3.x集成nacos 并实现多环境配置
springboot3.0.x 和springboot3.1.x 可直接使用nacos-config-spring-boot-starter 包。springboot >=3.2.x 需要使用spring-cloud-starter-alibaba-nacos-config包,因为常规包在我发布该文时nacos官方还没更新,已更新的版本只支持到3.1.x,cloud的包2024年4月份进行了更新,可以支持3.2.x及以上版本。
2024-03-07 13:10:45 25333 20
原创 springboot2.x升级到3.x实战经验总结
随着Spring Framework URL解析不当漏洞(CVE-2024-22243)的发布,springboot升级到3.x迫在眉睫,2.x的版本官方并未提供该漏洞的修复版本,后续应该也不会再发布新的版本。2.x升级到3.x是一次大的跨越,接下来,本人结合实践经验,浅淡一下需要注重的地方。
2024-03-06 16:16:07 23598 6
原创 spring boot 修复 Spring Framework URL解析不当漏洞(CVE-2024-22243)
一开始我们尝试直接替换spring-web的版本,但是只替换这一个包的话项目启动会报错,通过实践和反复尝试,我们对spring相关的jar包都进行了覆盖,这样可以保持springboot的版本号不变。如果现有项目的大版本是3.x,直接升级即可,但是有些老项目还停留在2.x的版本,官方并没有针对2.x发布新版本,从2.x直接升级到3.x,代价又比较大。其它已经不受官方支持的版本(5.1.x,5.2.x)同样受到影响,更新到受官方支持的安全版本。查看 springboot的版本,只有最新的。
2024-02-28 17:34:32 10537 2
原创 swagger 未授权访问漏洞修复,这可能是你看到的最好的解决方案!
大多数人都是直接禁用swagger,这样一来就给开发人员带来了负担,因为需要解决接口文档的问题,相信大家用惯了swagger文档,都不愿意自己再去手动写接口文档了。swagger未授权访问主要的路径如下,根据版本不同或者自定义的路径,可能会有一定的差异,自定义路径的只需要把自己的路径添加进来即可。通过以上方式,即解决了swagger未授权访问的问题,又解决了通过token授权访问的问题!怎样才能方便的修复未授权访问的漏洞,同时又能通过验证正常访问swagger文档呢?的方式对请求进行验证,
2023-09-26 15:22:13 37740
原创 springboot 修复 Spring Framework 特定条件下目录遍历漏洞(CVE-2024-38819)
刚解决Spring Framework 特定条件下目录遍历漏洞(CVE-2024-38816)没几天,又来一个新的,真是哭笑不得啊。不过没关系,springboot官方又发布了新的版本3.3.5,将项目升级到该版本即可从springboot2.x升级到3.x请查看springboot2.x升级到3.x实战经验总结。
2024-10-30 11:25:27 685
原创 springboot3.x使用@NacosValue无法获取配置信息问题解决
要实现取值和动态刷新,显然通过实验证明使用@NacosValue是不得行了,因为使用了Spring Cloud的依赖包,所以根据官方文档显示,要通过 Spring Cloud 原生注解 @RefreshScope。在程序执行过程中,appId的值为null(没有取到),配置文件中确定有这个配置项,于是我尝试了一下使用@Value来取值,发现能正常取到,但是我还需要动态刷新的功能,要怎么做呢?springboot从2.x升级到3.x后,nacos的依赖包需要改成Spring loud的依赖包才能继续使用。
2024-10-21 16:54:05 577
原创 springboot2.x升级到3.x后restTemplate请求微信接口报错412 Precondition Failed: [no body] 问题解决
最近将老项目从springboot2.x升级到3.x中,遇到了很多的坑,每个服务的业务不一样,坑也不都完全相同,我在改造微信相关服务的后台过程中,遇到了该异常,如图所示。微信会检查Content-Length参数,但Spring Framework 6.1以后请求不再设置该参数。自己在http header中自己设置Content-Length就行了,示例代码如下。
2024-10-18 13:16:45 299
原创 springboot 修复 Spring Framework 特定条件下目录遍历漏洞(CVE-2024-38816)
springboot2.x升级到3.x实战经验总结安全版本6.0.24 和 6.1.13 是springboot3.x使用的版本,springboot3.x的用户只需要将springboot升级到最新版本即可,官方已发布最新版本,如下图所示,springboot3.2以下版本已不再提供更新维护。祝大家升级顺利!
2024-10-14 09:23:25 2964 3
原创 java实现根据延迟法定退休政策计算退休年龄
从2025年1月1日起,男职工和原法定退休年龄为五十五周岁的女职工,法定退休年龄每四个月延迟一个月,分别逐步延迟至六十三周岁和五十八周岁;原法定退休年龄为五十周岁的女职工,法定退休年龄每二个月延迟一个月,逐步延迟至五十五周岁。国家另有规定的,从其规定。运行结果与对照表一致。
2024-09-14 14:17:02 546 6
原创 javax.net.ssl.SSLException: closing inbound before receiving peer‘s close_notify 错误解决,同时支持开启SSL认证
最近将springboot从2.x升级到3.x后,服务后台一直报javax.net.ssl.SSLException: closing inbound before receiving peer‘s close_notify 异常,但是服务可以正常访问。通过上述依赖包替换后,控制台不再报javax.net.ssl.SSLException: closing inbound before receiving peer‘s close_notify 异常,问题成功解决!不需要SLL认证的话可以这样处理。
2024-04-24 10:56:43 3114
原创 springdoc-openapi-用户界面如何将请求设置为HTTPS
当我们的服务接口需要通过HTTPS访问时,通过swagger可视化页面请求接口的时候,发起的是HTTP请求,导致请求无法到达后端,影响测试。列表中选择指定的接口根路径即可,接口根路径会根据你的选择自动变更。SpringDoc的配置类中注入配置信息,并设置服务列表。如图所示,在swagger页面的。1、将服务的地址添加到配置文件中。
2024-04-02 16:05:14 14999
原创 springboot3.x集成SpringDoc Swagger3
近期将springboox2.x升级到了3.x,索性将swagger2也同步升级到swagger3。本人提供的解决方案就是通过过滤器的方式对请求进行验证,请求的时候需要在链接后面加上我们自定义的token参数,通过验证token判断是否是合法的访问,注意,添加过滤器后需要在启动类上加上
2024-03-06 16:09:16 16237
原创 easypoi导出excel在苹果端微信内打不开问题解决
出现这种情况,用户可以选择用其他软件打开,但是体验不太好,用户会认为文件有问题,其实用wps等办公软件是能够正常打开的,那么如何解决在微信内打开的问题呢?后端通过easypoi导出的数据在mac或者苹果手机上的微信内打不开,在安卓或者windows端的微信内打开正常。其实很简单,只需要在代码里面。
2024-02-29 15:34:15 776
原创 java Concurrent 线程安全的集合类
是一个线程安全的哈希表实现,它支持高并发的读写操作。它采用了分段锁的机制,将整个哈希表分成多个段,每个段都有一个独立的锁,不同的线程可以同时访问不同的段,从而提高并发性能。:是一个线程安全的动态数组实现,它通过在修改操作时创建一个新的数组来实现线程安全。它支持高并发的读写操作,并且提供了有序的遍历功能。:是一个线程安全的无界队列实现,它采用了无锁的并发算法,支持高并发的入队和出队操作。:是一个线程安全的双端队列实现,它采用了无锁的并发算法,支持高并发的入队和出队操作。:是一个线程安全的集合实现,它基于。
2023-11-15 15:09:58 181
原创 SpringBoot修复Spring AMQP反序列化漏洞(CVE-2023-34050)
问题描述:2023年10月 Spring官方披露 CVE-2023-34050 Spring AMQP反序列化漏洞漏洞。由于 SimpleMessageConverter 或 SerializerMessageConverter 默认未配置白名单,导致可以反序列化任意类。新版本中在未配置白名单的情况下则不允许反序列化任意类。解决的建议:1.spring-amqp版本低于2.4.17的用户应升级到2.4.172.spring-amqp是3.0.0至3.0.9版本的用户应升级至3.0.10
2023-10-27 18:34:26 5327 22
原创 springboot log4j2远程代码执行漏洞修复
一、影响范围2.0<=Apache log4j2<=2.16.0影响判断方式:用户只需排查Java应用是否引入log4j-api,log4j-core两个jar。若存在应用使用,极大可能会受到影响。二、解决办法1、排除log4j的依赖
2021-12-10 10:27:41 873 3
原创 springboot redis 高并发遇到的坑:io.netty.util.internal.OutOfDirectMemoryError: failed to allocate 901775360
这个是使用了lettuce的原因,lettuce有此bug,解决办法 改为使用jedis,具体操作如下一、在pom.xml中添加排除lettuce包并添加jedis的依赖<!-- redis conf --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</arti
2021-09-23 08:38:53 3239
原创 java随机打乱List中的数据
public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("张三"); list.add("李四"); list.add("王五"); list.add("赵六"); //把随机排序的数据存储在 listRandom 中 .
2021-01-28 10:37:25 874
原创 解决idea的.gitignore有时不起作用的问题
进入到你的项目目录,依次执行下面的命令git rm -r --cached .git add .git commit -m 'update .gitignore'
2020-10-19 11:31:16 230
原创 gin 设置允许跨域请求
话不多说,直接上代码1、编写跨域处理中间件/** * @Author: ldy * @Description: 跨域访问处理 * @File: CrosHandler * @Version: 1.0.0 * @Date: 2020/4/28 09:39 */package handlerimport ( "activity/common/result" "github.com/gin-gonic/gin" "net/http")//跨域访问:cross origi
2020-06-11 16:40:24 5511
原创 mac os 解决 unsafe use of relative rpath libpq.5.dylib
sudo mv /usr/lib/libpq.5.dylib /usr/lib/libpq.5.dylib.old sudo ln -s /Library/PostgreSQL/你的版本/lib/libpq.5.dylib /usr/lib
2020-05-19 10:48:52 817
原创 go xorm 优雅方式实现动态条件查询
关键代码如下 var persons []domain.Person session := engine.Where("1=1") if param.ActivityId != nil { session = session.And("activity_id = ?", param.ActivityId) } if param.Sex != nil { sess...
2020-05-06 11:08:13 3872 6
原创 访问swagger页面控制台抛异常问题解决
当我们访问swagger页面的时候,有时候会报类型转换的异常,但是不影响项目正常运行,有强迫症的人肯定觉得很难受!出现这种问题,是由于你的参数列表中包含数字类型的参数(Long、Integer、long、int),我们只需要给这些参数的swagger说明加上默认值即可,即给example属性设置默认值,例如: 1、参数直接在controller层的方法里面 ...
2019-11-23 12:32:48 1803
转载 mysql 与 java 类型对照表
类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) VARCHAR L+N VARCHAR java.lang.String 12 CHAR N CHAR java.lang.String 1 BLOB L+N BLOB java.lang.byte[] -4 TE...
2019-09-24 14:44:21 802
原创 java RestTemplate put和delete请求无返回值问题解决
最近的项目中涉及到使用RestTemplate 调用请求方式为delete和put的接口,但是RestTemplate提供的delete()和put()方法都没有返回值,但是我要调用的接口是有返回值的,网上的资料很多都是写的调用exchange()方法来实现,但是基本上都没有给出完整实例,导致我在参考他们的代码的时候会出现参数无法传递的问题,目前我已经解决该问题,现将我的解决方法分享...
2019-08-28 16:21:20 21300 2
原创 java快速搞定excel导出(easypoi)
一、在pom.xml中添加easypoi的maven依赖 <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-base</artifactId> <version&g...
2019-07-08 11:37:50 2225 1
原创 mysql 常用备份命令
1、备份db1数据库中所有表(包括表结构和数据,不包括创建db1数据库的语句)mysqldump -h192.168.1.10 -uroot -p db1 > xxx.sql2、备份db1数据库中所有表(包括表结构和数据,包括创建db1数据库的语句)mysqldump -h192.168.1.10 -uroot -p --databases db1 > xxx.sql...
2019-07-05 10:16:13 36050 1
原创 Java Redis缓存操作(哨兵模式)
一、添加jedis的maven依赖<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version></dependency>二、在...
2019-06-21 15:54:52 1650
原创 Java Redis缓存操作(集群模式)
一、添加jedis的maven依赖<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version></dependency>二、在...
2019-06-21 15:51:14 1254
原创 Java Redis缓存操作(单机模式)
一、添加jedis的maven依赖<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version></dependency>二、在...
2019-06-21 15:13:28 525
原创 @NotEmpty、@NotNull、@NotBlank 的区别
1. @NotEmpty:用于 String、集合、Map、数组Asserts that the annotated string, collection, map or array is not {@code null} or empty.加了@NotEmpty的String类,Collection、Map、数组,是不能为null或者长度为0的(String、Collection、Map...
2019-06-19 09:14:55 1268
原创 Http工具类 HttpUtils
import java.io.IOException;import java.nio.charset.Charset;import java.security.KeyManagementException;import java.security.KeyStore;import java.security.KeyStoreException;import java.security.N...
2019-05-09 17:08:51 17288 4
原创 spring boot mybatis 打印sql语句
在application.properties文件中添加mapper层的日志配置即可打印sql语句,如:#显示sqllogging.level.com.ldy.bootv2.demo.mapper=debugcom.ldy.bootv2.demo.mapper是我的xxxMapper.java文件所在的目录...
2019-04-26 16:48:54 768
原创 spring boot 多数据源实现
1、在application.properties文件中配置多个数据源#主数据源spring.datasource.core.driver-class-name=com.mysql.jdbc.Driverspring.datasource.core.jdbc-url=jdbc:mysql://127.0.0.1:3306/boot_v2?useUnicode=true&chara...
2019-04-19 16:20:15 1071
原创 spring boot cache 整合 redis
关于 Spring Cache 注解请查看:Spring Cache 注解详解Redis的安装教程:https://blog.csdn.net/LDY1016/article/details/76083162下面进入正题。。。1、在pom.xml中添加redis的依赖<dependency> <groupId>org.springframework....
2019-04-17 15:39:44 2027
原创 Spring Cache 注解详解
@CacheConfig:在类上面统一定义缓存的名字,方法上面就不用标注了,表示该类所有的方法都是支持缓存的,我们一般不使用该注解,直接通过@Cacheable自己配置缓存集的名字来定义。@Cacheable:配置了getOne函数的返回值将被加入缓存。同时在查询时,会先从缓存中获取,若不存在才再发起对数据库的访问。该注解主要有下面几个参数:@Cacheable(value = "use...
2019-04-17 15:21:17 1576
原创 java面试题回顾
1、 重载(overload)和重写(override)的区别?重载的方法能否根据返回类型 进行区分?方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态 性。重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为 重载;重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的返回类型,...
2019-03-20 16:42:59 490 1
原创 Spring Cloud 服务注册之 consul
一、consul安装部署下载地址:https://www.consul.io/downloads.html1、解压,我这里放在 E:\dev\consul-1.4.3目录下2、配置环境变量3、执行命令 consul agent -dev 启动consul4、打开网址:http://localhost:8500 查看consul管理界面二、spring clo...
2019-03-20 15:57:25 715
原创 java实现四个常见的排序算法
package com.example.demo;import java.util.Arrays;public class SortTest { /** * 冒泡法排序<br/> * <li>比较相邻的元素。如果第一个比第二个大,就交换他们两个。</li> * <li>对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一...
2019-02-20 14:26:33 474
Easy UI图标扩展
2014-11-13
easyui datagrid插件 datagrid-detailview.js
2014-07-09
创建存储过程与触发器实验
2013-06-01
网络工程师入门教程2
2013-06-01
网络工程师入门教程1
2013-06-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人