自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

记录点滴

心所愿,力必至!

  • 博客(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

原创 springboot3.x集成mybatis-plus代码生成工具

【代码】springboot3.x集成mybatis-plus代码生成工具。

2024-10-11 11:02:29 287

原创 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图标扩展

最近做的项目中,前台框架都是用的Easy UI,在使用的过程中发现Easy UI本身提供的图标不够用,所以我自己在icon.css文件中新添加了一些常用的图标,图标源文件放在themes/icons/custom文件夹下,其实很简单,只需要将custom文件夹拷到你的icons文件夹下,将icon.css拷过去覆盖你的icon.css文件即可,各图标的使用下载后里面有文档说明,也有Easy UI原本的图标使用说明,会Easy UI的朋友们一看就懂了,这里不多解释。

2014-11-13

easyui datagrid插件 datagrid-detailview.js

支持datagrid扩展,在一条记录下面可以嵌套一个子datagrid,切记要在页面中引入该js

2014-07-09

jquery.easyui前台框架

一个独立的jquery easyui 前台框架,包你满意,可以整合到任何开发语言搭建的后台中

2014-07-09

创建存储过程与触发器实验

存储过程可以使得程序执行效率更高、安全性更好,因为过程建立之后 已经编译并且储存到数据库,直接写sql就需要先分析再执行因此过程效率更高,直接写sql语句会带来安全性问题,如:sql注入 建立过程不会很耗系统资源,因为过程只是在调用才执行

2013-06-01

网络工程师入门教程2

网络工程师是通过学习和训练,掌握网络技术的理论知识和操作技能的网络技术人员。网络工程师能够从事计算机信息系统的设计、建设、运行和维护工作。 和软件工程师是不一样的。 网络工程师的就业范围相当宽广,几乎所有的IT企业都需要网络工程师帮助用户设计和建设计算机信息系统;几乎所有拥有计算机信息系统的IT客户都需要网络工程师负责运行

2013-06-01

网络工程师入门教程1

网络工程师是通过学习和训练,掌握网络技术的理论知识和操作技能的网络技术人员。网络工程师能够从事计算机信息系统的设计、建设、运行和维护工作。 和软件工程师是不一样的。 网络工程师的就业范围相当宽广,几乎所有的IT企业都需要网络工程师帮助用户设计和建设计算机信息系统;几乎所有拥有计算机信息系统的IT客户都需要网络工程师负责运行

2013-06-01

空空如也

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

TA关注的人

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