liangblog
http://edu.csdn.net/course/detail/37414
展开
-
使用 Apache POI 生成 Word 文档
创建一个包含标题、段落和表格的简单文档。确保你的项目中已经添加了 Apache POI 的依赖。如果你使用的是 Maven,可以在pom.xml中添加以下内容:</</</</原创 2025-05-15 10:01:34 · 685 阅读 · 0 评论 -
ThreadPoolExecutor线程池,通过自定义任务类和自定义拒绝策略,获取被拒绝任务的数据
为了在拒绝策略中获取任务数据,可以使用自定义的任务类来封装任务逻辑和相关数据。将自定义任务提交到线程池,并配置自定义拒绝策略。类封装了任务的 ID 和数据,并实现了。在自定义拒绝策略中,可以通过类型检查将。转换为自定义的任务类(如。),然后提取任务数据。原创 2025-05-15 10:00:16 · 15 阅读 · 0 评论 -
Java 的线程池中ThreadPoolExecutor 拒绝策略的具体使用
如果内置的拒绝策略无法满足需求,可以实现自己的拒绝策略。例如,记录日志、重试任务或将任务保存到数据库。由提交任务的线程(调用者线程)执行被拒绝的任务。丢弃队列中最旧的任务,然后尝试重新提交当前任务。(队列中最旧的任务被丢弃,新任务被重新提交)直接丢弃被拒绝的任务,不抛出异常。(被拒绝的任务不会有任何输出)原创 2025-05-14 14:43:57 · 327 阅读 · 0 评论 -
ThreadPoolExecutor线程池使用时触发拒绝策略
假设每批次处理时间为 2 分钟,那么每个线程每 2 分钟可以完成一个批次的任务。如果任务提交速度过快(例如一次性提交所有批次),可能会导致任务堆积甚至触发拒绝策略。这意味着线程池最多可以同时处理。原创 2025-05-14 14:43:37 · 17 阅读 · 0 评论 -
java 结合 FreeMarker 和 Docx4j 来生成包含图片的 docx 文件
使用 FreeMarker 生成 HTML,然后通过 Docx4j 将 HTML 转换为.docx文件;原创 2025-05-13 15:42:52 · 233 阅读 · 0 评论 -
java使用 FreeMarker 模板生成包含图片的 `.doc` 文件
使用 FreeMarker 生成包含图片的 HTML。将生成的 HTML 直接保存为.doc文件。尽管这不是最完美的解决方案,但大多数现代文字处理软件(如 Microsoft Word)能够打开并正确显示这种类型的文件。原创 2025-05-13 15:42:09 · 21 阅读 · 0 评论 -
JAVA获取重定向地址URL的两种方法
要禁止自动重定向写一个继承SimpleClientHttpRequestFactory的类,重写prepareConnection方法,把该属性设置为false;1、使用HttpURLConnection。2、使用RestTemplate。原创 2024-07-10 09:59:08 · 7088 阅读 · 0 评论 -
Java单线程进行文件拷贝的几种方式
Java NIO中的FileChannel类提供了transferTo和transferFrom方法,这些方法可以直接在文件通道之间进行数据传输,而无需经过用户空间。这通常比使用传统的FileInputStream和FileOutputStream要快,因为它减少了数据在内核空间和用户空间之间的拷贝次数。对于非常大的文件,使用FileChannel的map方法可以将文件的一部分或全部映射到内存中,从而可以像操作内存数组一样操作文件。这可以进一步提高性能,但需要注意内存使用的限制。原创 2024-04-08 10:32:49 · 93 阅读 · 0 评论 -
SpringBoot 操作定时任务实现任务的启动,停止和重启等
向 spring 容器中注入一个 ThreadPoolTaskScheduler 的 bean,合理配置poolSize大小,用于调度定时任务;ThreadPoolTaskScheduler 是 spring taskSchedule 接口的实现,可以用来做定时任务使用。通过schedule(Runnable task, Trigger trigger)方式来创建定时任务,并缓存一下;使用spring注解到容器,方便获取;如不涉及到容器获取,可以不注解。提供接口可以操作定时任务的启动和停止;原创 2023-12-25 15:37:49 · 1055 阅读 · 0 评论 -
Java下载文件到本地的多种方式
使用okhttp下载,需要引入。原创 2023-12-25 15:37:30 · 1710 阅读 · 0 评论 -
RestTemplate调用接口上传文件
【代码】RestTemplate调用接口上传文件。原创 2023-11-23 09:26:06 · 281 阅读 · 0 评论 -
解决gradle下载慢的问题
allprojects块的repositories用于多项目构建,为所有项目提供共同所需依赖包。而子项目可以配置自己的repositories以获取自己独需的依赖包。buildScript块的repositories主要是为了Gradle脚本自身的执行,获取脚本依赖插件。根级别的repositories主要是为了当前项目提供所需依赖包。慢的问题在于下载时链接的是官网,而官网下载速度太慢;1、解决gradle不同版本下载慢的问题。但是这个镜像站的版本不全,低版本可以用;有公司做的国内镜像站;原创 2023-11-21 14:14:32 · 1681 阅读 · 0 评论 -
在springBoot中同时使用mysql和MongoDB
在SpringBoot中非关系向数据库MongoDB和关系型数据库MySQL都可通过引入相关依赖并按照指定配置单独集成;原创 2023-11-20 10:35:03 · 1182 阅读 · 0 评论 -
Mybatis一对多查询sql语句
查询一对多的sql写法;原创 2023-10-16 22:49:28 · 195 阅读 · 0 评论 -
解决安卓工程导入一直在bulid的问题
使用项目的bulid.gradle可以解决90%的问题;导入一个安卓项目,一直显示在bulid。因为大概率会遇到jdk版本的问题;主要是替换了依赖下载的地址。再提供一个jdk的下载地址。大概率是因为网络下载问题。原创 2023-09-07 22:00:35 · 164 阅读 · 0 评论 -
javaagent实战(使用javassist)
javaagent介绍:javaagent是依赖java底层提供的一个叫instrument的JVMTI Agent。简单来说,javaagent是一个JVM的“插件”。在java运行命令中 javaagent是一个参数,用来指定agent。原创 2023-07-04 15:01:07 · 589 阅读 · 0 评论 -
Springboot2中新增的注解属性proxyBeanMethods:代理bean的方法
Spring会遍历所有的bean信息, 如果发现其中有标记了@Configuration注解的,会对这个类进行CGLIB代码,生成一个代理的类,并且把这个类设置到BeanDefenition的Class属性中。CGLIB是针对类来实现代理的,它的原理是对指定目标类生成一个子类,并覆盖其中的方法实现增强,但因为采用的是继承,所以不能对final修饰的类进行代理。如果说没有的话,才会新建组件。当使用代理对象的调用它的方法,会检测容器中是不是有了这样的组件,如果有,则不再新建组件,直接将已经有的组件返回。原创 2023-01-12 14:36:26 · 1284 阅读 · 0 评论 -
使用hutool的非对称加密工具进行加密解密
最近项目中有对密码加密的需求,就了解了一下非对称加密对于非对称加密,最常用的就是RSA和DSA,非对称加密有公钥和私钥两个概念,私钥自己拥有,不能给别人,公钥公开。根据应用的不同,可以使用不同的密钥加密:签名:使用私钥加密,公钥解密。用于让所有公钥所有者验证私钥所有者的身份并且用来防止私钥所有者发布的内容被篡改,但是不用来保证内容不被他人获得。加密:用公钥加密,私钥解密。用于向公钥所有者发布信息,这个信息可能被他人篡改,但是无法被他人获得。原创 2023-01-10 10:13:39 · 1395 阅读 · 0 评论 -
java将有父子关系的list转换为树形结构
在项目对接过程中,被调用方给返回了一个对象列表,对象中包含id和parentId,但返回的数据没有层级结构,需要调用方自己组装成树级结构;由于返回的是否无序的列表,首先需要找到顶级结构,然后更加parentId获取子级,递归循环,指定子级没有后代信息;第一种、首先想到的是循环列表,对一个列表进行多次循环,每次只找一级,即可实现;相对来说第二种方式,比较合适;第二种、先根据parentId聚合,然后再对聚合map进行递归;以上实现方法,还是有点麻烦,还在找一种更方便快速的方法实现;原创 2022-12-28 21:15:47 · 2030 阅读 · 0 评论 -
Jwt认证方式多种
JWT全称是JSON Web Token,官网地址直达;JWT的本质就是一个字符串,它是将用户信息保存到一个Json字符串中,然后进行编码后得到一个JWT token,并且这个JWT token带有签名信息,接收后可以校验是否被篡改,所以可以用于在各方之间安全地将信息作为Json对象传输。原创 2022-12-13 10:12:49 · 959 阅读 · 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 · 1103 阅读 · 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 · 1398 阅读 · 0 评论 -
在springboot工程中修改使用quartz创建的定时任务
在以上代码中,接口服务中的Scheduler是可以直接依赖注入的;但在之前版本的Quratz中是需要的;Quartz 是一个完全由 Java 编写的开源作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。因为需要编写接口服务,所以引入了spring-boot-starter-web依赖;Quartz 实现了作业和触发器的多对多的关系,还能把多个作业与不同的触发器关联。需要传入指定的TriggerKey,才能确定需要修改的触发器;创建完成后的pom.xml中Quratz的依赖是。原创 2022-11-26 15:34:55 · 638 阅读 · 0 评论 -
在springboot工程中创建定时任务,使用quartz
DisallowConcurrentExecution禁止并发执行多个相同定义的JobDetail,这个注解是加在Job类上的,但意思并不是不能同时执行多个Job, 而是不能并发执行同一个JobDefinition(由JobDetail定义)JobDetail 表示一个具体的可执行的调度程序,Job 是这个可执行程调度程序所要执行的内容,另外 JobDetail 还包含了这个任务调度的方案和策略。Quartz 实现了作业和触发器的多对多的关系,还能把多个作业与不同的触发器关联。原创 2022-11-25 16:30:56 · 650 阅读 · 0 评论 -
实现EnvironmentAware接口 将配置文件中的属性放置到系统环境变量中
profile配置是一个被命名的、bean定义的逻辑组,这些bean只有在给定的profile配置激活时才会注册到容器。Environment环境对象的作用,对于profiles配置来说,它能决定当前激活的是哪个profile配置,和哪个profile是默认。所有的配置信息,都会加载到Environment实体中,因此我们可以通过这个对象来获取系统的配置,通过这种方式不仅可以获取application.yml配置信息,还可以获取更多的系统信息;这个时候使用EnvironmentAware最是方便;原创 2022-11-22 21:10:03 · 872 阅读 · 0 评论 -
Idea创建maven工程,配置多仓库。
IDEA中查看maven信息的方式是:打开File -> Settings->搜索maven即可;原创 2022-11-10 09:00:46 · 748 阅读 · 0 评论 -
使用EasyExcel实现CSV文件读写功能,顺手使用Idea创建SpringBoot工程集成swagger3
EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。分别读取两个csv文件,将一对多的读取数据为map,通过遍历第一个文件的数据列表,获取一对多属性,然后写入到一个文件中;有两个csv文件,其他一个文件是多条记录信息,另外一个文件是一条记录对应多条属性;需要注意的是,在读取有中文的csv文件时,可能会出现乱码的情况,这时候,需要调用charset函数设置字符集;使用最简单的读文件方式,声明一个内部监听类,读取所以数据到列表。更简单的读文件方式,分页读取,默认是100行;原创 2022-11-10 08:59:55 · 2401 阅读 · 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 · 1903 阅读 · 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 · 671 阅读 · 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 · 461 阅读 · 0 评论 -
axis和cxf集成Springmvc的使用
一、使用axis用wsdl生成Webservice:工具:有axis插件的eclipse,wsdl文件;操作步骤:新建工程--》选择wsdl文件--》右键选择Webservice--->Generate Java Bean Skeleton为了自动生成server-config.wsdd文件 需要勾选上图所示地方;<ns1:deployme...原创 2017-09-30 10:57:00 · 334 阅读 · 0 评论 -
gradle配置多个代码仓库repositories
repositories { mavenCentral() maven { url "https://jitpack.io" } maven { url "http://maven.aliyun.com/nexus/content/groups/public/" } maven { url 'http://maven.oschina....原创 2019-08-21 17:02:00 · 1223 阅读 · 0 评论 -
Springboot项目启动后获取配置属性,打开浏览器
ConfigurableApplicationContext 直接继承了 ApplicationContext, Lifecycle, Closeable 接口,所以 ConfigurableApplicationContext 是 ApplicationContext 的子类。访问 property 的方法通过 Environment 继承的接口 PropertyResolver 暴露出去的。考虑在服务启动类中,获取服务ip和端口,项目路径等信息;需要实现,在启动服务后,打开服务指定页面;原创 2022-09-27 16:44:23 · 1176 阅读 · 0 评论 -
Java读取csv文件的三种方式
csv全称“Comma-Separated Values”,是一种逗号分隔值格式的文件,是一种用来存储数据的纯文本格式文件。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串。它们大多使用逗号字符来分隔(或定界)数据,但有时使用其他字符,如分号等;原创 2022-09-23 18:34:43 · 3978 阅读 · 0 评论 -
使用EasyExcel导入用户数据
导入依赖包```javacompile 'com.alibaba:easyexcel:2.2.6'```代码(依赖于springboot)提供数据导入接口```javaimport java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import...原创 2020-11-03 09:28:00 · 800 阅读 · 0 评论 -
java操作FFmpeg处理图片
图片加水印:import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import java.awt.Image;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileNotFoundExcepti...原创 2020-11-10 10:23:00 · 1108 阅读 · 0 评论 -
记一次应用接入第三方统一认证服务的过程,基于JWT和OAuth2.0
一套应用服务,有自己的独立登录接口,独立认证服务(JWT认证),独立用户等,需要接入第三方的统一认证系统,实现用户统一登录;实现统一用户和单点登录,需要是:首先用户同步,用户数量小,可以通过手动新建,然后和统一用户关联的方式;对于只有统一登录,不需要统一用户的,需要自动新建用户或关联已有用户其次是统一登录页面:可以保留自有登录页面,通过不同接口跳转到统一登录页面做验证;jwt方式不提供统一登出服务;原创 2022-09-05 09:23:54 · 1036 阅读 · 0 评论 -
springboot的可执行fatjar打包部署后,在运行时加载外部jar包;
参考文档:https://docs.spring.io/spring-boot/docs/2.7.2/gradle-plugin/reference/htmlsingle/#packaging-executable.jars。参考官网配置:https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#appendix.executable-jar.launching。重新打包后,问题解决,可以加载外部依赖;原创 2022-09-05 09:23:26 · 1306 阅读 · 0 评论 -
RestTemplate下载文件的另一种方式
使用RestTemplate下载文件最长用的方式是:除了这种方式,还有另一种方式可以实现下载;原创 2022-08-19 09:30:34 · 2138 阅读 · 0 评论 -
使用java上传文件到对象存储上(三)
代码】使用java上传文件到对象存储上(三)原创 2022-07-25 19:49:11 · 615 阅读 · 0 评论