liangblog
http://edu.csdn.net/course/detail/37414
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
将 `knife4j` 和 `springdoc-openapi` 集成到你的 Spring Boot 应用
集成knife4j和可以让你在 Spring Boot 应用中拥有更美观和功能丰富的 API 文档界面。knife4j是基于Swagger的一个 UI 增强包,而则是用于生成 OpenAPI 3 文档的库。下面是如何将两者集成到你的 Spring Boot 项目中的步骤。原创 2025-07-23 09:45:43 · 241 阅读 · 0 评论 -
使用 Maven 的 `maven-assembly-plugin` 插件打包zip
在pom.xml中配置来生成 ZIP 包。原创 2025-07-23 09:42:23 · 699 阅读 · 0 评论 -
`RestTemplate` 的拦截器功能
在使用 进行 HTTP 请求时,可以通过拦截器来实现一些通用的功能,如添加认证信息、日志记录等。以下是几种不同的实现方法:这是最常见的方式,通过实现 接口来自定义拦截器。然后在配置 实例时添加该拦截器:2. 使用匿名内部类如果不想创建单独的类文件,也可以直接在配置中使用匿名内部类来实现拦截器逻辑。3. 基于 Spring 的 AOP 拦截对于更复杂的场景,可以考虑使用 Spring AOP 来实现拦截逻辑。这种方式更加灵活,但可能不如直接使用 直观。首先,添加依赖(如果项目中还没有):原创 2025-07-22 10:07:45 · 34 阅读 · 0 评论 -
RestTemplateUtils 工具类 使用静态方法调用
【代码】RestTemplateUtils 工具类 使用静态方法调用。原创 2025-07-22 10:07:25 · 36 阅读 · 0 评论 -
利用 Spring 的 `@Scheduled` 注解结合简单的状态跟踪实现空闲检测方案
首先,确保你的Spring Boot项目已经启用了定时任务支持,在主类或配置类上添加。定期检查用户是否超出了设定的空闲时间。当用户被认为是空闲时,会触发。方法来记录用户的最后活动时间,并且通过。方法执行相应的处理逻辑。在这个例子中,我们通过。原创 2025-07-16 12:12:40 · 47 阅读 · 0 评论 -
使用Freemarker模板引擎来生成Word文档
创建一个Word文档,并将其另存为HTML格式。然后,基于这个HTML文件创建Freemarker模板(接下来,编写Spring Boot控制器来处理导出请求,并使用Freemarker填充模板数据。原创 2025-07-15 09:45:05 · 55 阅读 · 0 评论 -
springboot 快速实现一个导出Excel功能
接下来,创建一个Spring Boot控制器,用于处理导出请求,并生成Excel文件返回给客户端。注解来定义哪些字段需要导出以及它们在Excel中的显示名称等信息。接下来,编写Spring Boot控制器来处理导出请求,并使用。接下来,编写Spring Boot控制器来处理导出请求,并使用。创建一个控制器来处理导出请求并生成CSV内容。请根据项目的需要选择合适的版本号。创建一个Java实体类,并使用。提供的方法生成Excel文件。提供的方法生成Excel文件。注解来指定字段对应的列名。原创 2025-07-15 09:44:47 · 453 阅读 · 0 评论 -
@DubboReference远程服务不可用时的配置
Override注意:该类必须存在于客户端,并且与接口同名。场景推荐配置远程服务可能挂掉,需要容错或自定义 Mock 类对性能要求高,允许失败对可靠性要求高,允许重试不想依赖远程服务做测试mock = 自定义Mock类或使用 Mockito 框架。原创 2025-06-10 14:49:57 · 151 阅读 · 0 评论 -
Java 中的LinkedList特点
场景推荐使用LinkedList吗?高频插入/删除✅ 强烈推荐需要模拟栈或队列✅ 推荐高频随机访问❌ 不推荐节省内存❌ 不推荐实现 LRU 缓存✅ 可以,但建议使用更高效。原创 2025-06-10 14:49:25 · 59 阅读 · 0 评论 -
`com.mongodb.client.model.Updates` 类常用的更新方法
类是 MongoDB Java 驱动中的一部分,提供了用于构建更新操作的静态工厂方法。这些方法可以用来创建。等各种更新操作的文档对象。原创 2025-06-09 15:49:39 · 144 阅读 · 0 评论 -
使用 Apache POI 生成 Word 文档
创建一个包含标题、段落和表格的简单文档。确保你的项目中已经添加了 Apache POI 的依赖。如果你使用的是 Maven,可以在pom.xml中添加以下内容:</</</</原创 2025-05-15 10:01:34 · 781 阅读 · 0 评论 -
ThreadPoolExecutor线程池,通过自定义任务类和自定义拒绝策略,获取被拒绝任务的数据
为了在拒绝策略中获取任务数据,可以使用自定义的任务类来封装任务逻辑和相关数据。将自定义任务提交到线程池,并配置自定义拒绝策略。类封装了任务的 ID 和数据,并实现了。在自定义拒绝策略中,可以通过类型检查将。转换为自定义的任务类(如。),然后提取任务数据。原创 2025-05-15 10:00:16 · 96 阅读 · 0 评论 -
Java 的线程池中ThreadPoolExecutor 拒绝策略的具体使用
如果内置的拒绝策略无法满足需求,可以实现自己的拒绝策略。例如,记录日志、重试任务或将任务保存到数据库。由提交任务的线程(调用者线程)执行被拒绝的任务。丢弃队列中最旧的任务,然后尝试重新提交当前任务。(队列中最旧的任务被丢弃,新任务被重新提交)直接丢弃被拒绝的任务,不抛出异常。(被拒绝的任务不会有任何输出)原创 2025-05-14 14:43:57 · 468 阅读 · 0 评论 -
ThreadPoolExecutor线程池使用时触发拒绝策略
假设每批次处理时间为 2 分钟,那么每个线程每 2 分钟可以完成一个批次的任务。如果任务提交速度过快(例如一次性提交所有批次),可能会导致任务堆积甚至触发拒绝策略。这意味着线程池最多可以同时处理。原创 2025-05-14 14:43:37 · 53 阅读 · 0 评论 -
java 结合 FreeMarker 和 Docx4j 来生成包含图片的 docx 文件
使用 FreeMarker 生成 HTML,然后通过 Docx4j 将 HTML 转换为.docx文件;原创 2025-05-13 15:42:52 · 277 阅读 · 0 评论 -
java使用 FreeMarker 模板生成包含图片的 `.doc` 文件
使用 FreeMarker 生成包含图片的 HTML。将生成的 HTML 直接保存为.doc文件。尽管这不是最完美的解决方案,但大多数现代文字处理软件(如 Microsoft Word)能够打开并正确显示这种类型的文件。原创 2025-05-13 15:42:09 · 72 阅读 · 0 评论 -
JAVA获取重定向地址URL的两种方法
要禁止自动重定向写一个继承SimpleClientHttpRequestFactory的类,重写prepareConnection方法,把该属性设置为false;1、使用HttpURLConnection。2、使用RestTemplate。原创 2024-07-10 09:59:08 · 7143 阅读 · 0 评论 -
Java单线程进行文件拷贝的几种方式
Java NIO中的FileChannel类提供了transferTo和transferFrom方法,这些方法可以直接在文件通道之间进行数据传输,而无需经过用户空间。这通常比使用传统的FileInputStream和FileOutputStream要快,因为它减少了数据在内核空间和用户空间之间的拷贝次数。对于非常大的文件,使用FileChannel的map方法可以将文件的一部分或全部映射到内存中,从而可以像操作内存数组一样操作文件。这可以进一步提高性能,但需要注意内存使用的限制。原创 2024-04-08 10:32:49 · 100 阅读 · 0 评论 -
SpringBoot 操作定时任务实现任务的启动,停止和重启等
向 spring 容器中注入一个 ThreadPoolTaskScheduler 的 bean,合理配置poolSize大小,用于调度定时任务;ThreadPoolTaskScheduler 是 spring taskSchedule 接口的实现,可以用来做定时任务使用。通过schedule(Runnable task, Trigger trigger)方式来创建定时任务,并缓存一下;使用spring注解到容器,方便获取;如不涉及到容器获取,可以不注解。提供接口可以操作定时任务的启动和停止;原创 2023-12-25 15:37:49 · 1097 阅读 · 0 评论 -
Java下载文件到本地的多种方式
使用okhttp下载,需要引入。原创 2023-12-25 15:37:30 · 1730 阅读 · 0 评论 -
RestTemplate调用接口上传文件
【代码】RestTemplate调用接口上传文件。原创 2023-11-23 09:26:06 · 293 阅读 · 0 评论 -
解决gradle下载慢的问题
allprojects块的repositories用于多项目构建,为所有项目提供共同所需依赖包。而子项目可以配置自己的repositories以获取自己独需的依赖包。buildScript块的repositories主要是为了Gradle脚本自身的执行,获取脚本依赖插件。根级别的repositories主要是为了当前项目提供所需依赖包。慢的问题在于下载时链接的是官网,而官网下载速度太慢;1、解决gradle不同版本下载慢的问题。但是这个镜像站的版本不全,低版本可以用;有公司做的国内镜像站;原创 2023-11-21 14:14:32 · 1720 阅读 · 0 评论 -
在springBoot中同时使用mysql和MongoDB
在SpringBoot中非关系向数据库MongoDB和关系型数据库MySQL都可通过引入相关依赖并按照指定配置单独集成;原创 2023-11-20 10:35:03 · 1202 阅读 · 0 评论 -
Mybatis一对多查询sql语句
查询一对多的sql写法;原创 2023-10-16 22:49:28 · 204 阅读 · 0 评论 -
解决安卓工程导入一直在bulid的问题
使用项目的bulid.gradle可以解决90%的问题;导入一个安卓项目,一直显示在bulid。因为大概率会遇到jdk版本的问题;主要是替换了依赖下载的地址。再提供一个jdk的下载地址。大概率是因为网络下载问题。原创 2023-09-07 22:00:35 · 179 阅读 · 0 评论 -
javaagent实战(使用javassist)
javaagent介绍:javaagent是依赖java底层提供的一个叫instrument的JVMTI Agent。简单来说,javaagent是一个JVM的“插件”。在java运行命令中 javaagent是一个参数,用来指定agent。原创 2023-07-04 15:01:07 · 627 阅读 · 0 评论 -
Springboot2中新增的注解属性proxyBeanMethods:代理bean的方法
Spring会遍历所有的bean信息, 如果发现其中有标记了@Configuration注解的,会对这个类进行CGLIB代码,生成一个代理的类,并且把这个类设置到BeanDefenition的Class属性中。CGLIB是针对类来实现代理的,它的原理是对指定目标类生成一个子类,并覆盖其中的方法实现增强,但因为采用的是继承,所以不能对final修饰的类进行代理。如果说没有的话,才会新建组件。当使用代理对象的调用它的方法,会检测容器中是不是有了这样的组件,如果有,则不再新建组件,直接将已经有的组件返回。原创 2023-01-12 14:36:26 · 1312 阅读 · 0 评论 -
使用hutool的非对称加密工具进行加密解密
最近项目中有对密码加密的需求,就了解了一下非对称加密对于非对称加密,最常用的就是RSA和DSA,非对称加密有公钥和私钥两个概念,私钥自己拥有,不能给别人,公钥公开。根据应用的不同,可以使用不同的密钥加密:签名:使用私钥加密,公钥解密。用于让所有公钥所有者验证私钥所有者的身份并且用来防止私钥所有者发布的内容被篡改,但是不用来保证内容不被他人获得。加密:用公钥加密,私钥解密。用于向公钥所有者发布信息,这个信息可能被他人篡改,但是无法被他人获得。原创 2023-01-10 10:13:39 · 1427 阅读 · 0 评论 -
java将有父子关系的list转换为树形结构
在项目对接过程中,被调用方给返回了一个对象列表,对象中包含id和parentId,但返回的数据没有层级结构,需要调用方自己组装成树级结构;由于返回的是否无序的列表,首先需要找到顶级结构,然后更加parentId获取子级,递归循环,指定子级没有后代信息;第一种、首先想到的是循环列表,对一个列表进行多次循环,每次只找一级,即可实现;相对来说第二种方式,比较合适;第二种、先根据parentId聚合,然后再对聚合map进行递归;以上实现方法,还是有点麻烦,还在找一种更方便快速的方法实现;原创 2022-12-28 21:15:47 · 2061 阅读 · 0 评论 -
Jwt认证方式多种
JWT全称是JSON Web Token,官网地址直达;JWT的本质就是一个字符串,它是将用户信息保存到一个Json字符串中,然后进行编码后得到一个JWT token,并且这个JWT token带有签名信息,接收后可以校验是否被篡改,所以可以用于在各方之间安全地将信息作为Json对象传输。原创 2022-12-13 10:12:49 · 972 阅读 · 0 评论 -
Axis调用Webservice添加SoupHeader
Axis全称Apache eXtensible Interaction System,是apache组织下的一个开源项目,用来做webservice开发的,有java版的实现,也有c++版的实现,其前身最早是IBM的SOAP4J,后来捐给Apache后改名Apache SOAP,也就是支持SOAP1.1的那个版本,到现在的AXIS已经是第三代了,AXIS对Apache SOAP的改进有很多,比如用SAX代替以前的DOM,增加对WSDL的支持,支持SOAP1.2等等。Body元素由特定于消息的数据构成。原创 2022-12-08 20:23:59 · 1134 阅读 · 0 评论 -
使用CXF调用Webservice接口添加SoapHeader
WebService是一种跨编程语言和跨操作系统平台的远程调用技术。服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,反之亦然!指服务端程序和客户端程序可以在不同的操作系统上运行。XML+XSD,SOAP和WSDL就是构成WebService平台的三大技术。SOAP协议定义了SOAP消息的格式,SOAP协议是基于HTTP协议的,SOAP也是基于XML和XSD的,XML是SOAP的数据编码方式。WSDL文件保存在Web服务器上,通过一个url地址就可以访问到它。客户端要调用一个WebServ原创 2022-12-08 09:55:52 · 1419 阅读 · 0 评论 -
在springboot工程中修改使用quartz创建的定时任务
在以上代码中,接口服务中的Scheduler是可以直接依赖注入的;但在之前版本的Quratz中是需要的;Quartz 是一个完全由 Java 编写的开源作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。因为需要编写接口服务,所以引入了spring-boot-starter-web依赖;Quartz 实现了作业和触发器的多对多的关系,还能把多个作业与不同的触发器关联。需要传入指定的TriggerKey,才能确定需要修改的触发器;创建完成后的pom.xml中Quratz的依赖是。原创 2022-11-26 15:34:55 · 646 阅读 · 0 评论 -
在springboot工程中创建定时任务,使用quartz
DisallowConcurrentExecution禁止并发执行多个相同定义的JobDetail,这个注解是加在Job类上的,但意思并不是不能同时执行多个Job, 而是不能并发执行同一个JobDefinition(由JobDetail定义)JobDetail 表示一个具体的可执行的调度程序,Job 是这个可执行程调度程序所要执行的内容,另外 JobDetail 还包含了这个任务调度的方案和策略。Quartz 实现了作业和触发器的多对多的关系,还能把多个作业与不同的触发器关联。原创 2022-11-25 16:30:56 · 669 阅读 · 0 评论 -
实现EnvironmentAware接口 将配置文件中的属性放置到系统环境变量中
profile配置是一个被命名的、bean定义的逻辑组,这些bean只有在给定的profile配置激活时才会注册到容器。Environment环境对象的作用,对于profiles配置来说,它能决定当前激活的是哪个profile配置,和哪个profile是默认。所有的配置信息,都会加载到Environment实体中,因此我们可以通过这个对象来获取系统的配置,通过这种方式不仅可以获取application.yml配置信息,还可以获取更多的系统信息;这个时候使用EnvironmentAware最是方便;原创 2022-11-22 21:10:03 · 889 阅读 · 0 评论 -
Idea创建maven工程,配置多仓库。
IDEA中查看maven信息的方式是:打开File -> Settings->搜索maven即可;原创 2022-11-10 09:00:46 · 759 阅读 · 0 评论 -
使用EasyExcel实现CSV文件读写功能,顺手使用Idea创建SpringBoot工程集成swagger3
EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。分别读取两个csv文件,将一对多的读取数据为map,通过遍历第一个文件的数据列表,获取一对多属性,然后写入到一个文件中;有两个csv文件,其他一个文件是多条记录信息,另外一个文件是一条记录对应多条属性;需要注意的是,在读取有中文的csv文件时,可能会出现乱码的情况,这时候,需要调用charset函数设置字符集;使用最简单的读文件方式,声明一个内部监听类,读取所以数据到列表。更简单的读文件方式,分页读取,默认是100行;原创 2022-11-10 08:59:55 · 2442 阅读 · 0 评论 -
unicode和中文互转
public class Test { //Unicode转中文方法 private static String unicodeToCn(String unicode) { String[] strs = unicode.split("\\\\u"); String return...原创 2020-09-15 10:18:00 · 1913 阅读 · 0 评论 -
文件重命名或替换指定内容
import java.io.BufferedReader;import java.io.CharArrayWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;imp...原创 2020-06-30 14:30:00 · 678 阅读 · 0 评论 -
使用Swagger生成简单接口文档
使用swagger通过简单的配置可以生成简单的接口文档;依赖包: // Swagger2 compile 'io.springfox:springfox-swagger2:2.8.0' compile 'io.springfox:springfox-swagger-ui:2.8.0'启动类添加配置:import org.springframework.boot.Sp...原创 2018-09-27 22:31:00 · 468 阅读 · 0 评论