- 博客(91)
- 资源 (2)
- 收藏
- 关注
原创 《Minio 分片上传实现(基于Spring Boot)》
分片上传(Multipart Upload)是大文件上传的常用方案,可以解决大文件上传超时、网络不稳定等问题
2025-06-09 14:04:38
358
原创 《Java 并发神器:深入理解CompletableFuture.supplyAsync与线程池实战优化》
CompletableFuture.supplyAsync() 是 Java 8 引入的高效并发利器,尤其适用于多个并发任务并聚合结果的场景。它语法简洁,结合线程池使用可以大幅提升系统并发性能,是每个 Java 开发者都应该掌握的工具。
2025-06-05 09:17:41
257
原创 《IDEA 高效开发:自定义类/方法注释模板详解》
在 IntelliJ IDEA 中,可以通过 Live Templates 和 File Templates 来配置 类注释 和 方法注释 模板,方便快速生成规范的代码注释。
2025-06-04 09:56:33
553
原创 Caddy如何在测试环境中使用IP地址配置HTTPS服务
在开发和测试环境中,我们经常需要搭建HTTPS服务进行测试。但通常Let's Encrypt等证书颁发机构要求使用有效域名,不直接支持IP地址。本文将详细介绍如何使用Caddy在测试环境中通过IP地址配置HTTPS服务,使用自签名证书解决这一问题。
2025-05-28 10:04:47
639
原创 JDK 21新特性全面解析
JDK 21作为长期支持版本,为Java开发者带来了众多强大的新特性和改进。从革命性的虚拟线程到实用的序列集合,从模式匹配的增强到字符串模板的引入,这些特性共同推动Java平台向前迈进了一大步。
2025-05-17 15:12:55
1134
原创 Kafka、RabbitMQ 和 RocketMQ区别及上手难度
Kafka、RabbitMQ 和 RocketMQ 是三种流行的消息中间件区别及上手难度
2025-05-12 08:45:00
676
原创 Python人脸识别实战:基于face_recognition库
报这个错误安装旧版本,python版本不要用最新,推荐3.11.0,不然安装numpy安装会异常,没有这个兼容的包。
2025-04-14 17:17:18
205
原创 工厂模式 + 策略模式在实际项目中的优雅应用(含Java完整示例)
在业务系统开发中,我们经常遇到“根据类型执行不同处理逻辑”的需求,比如:用户注册奖励方式不同(积分、优惠券、红包)第三方支付方式不同(支付宝、微信、银联)内容审核策略不同(文本、图片、视频)这些情况使用if-else或 switch-case不仅臃肿,而且难以维护。此时,策略模式 + 工厂模式的组合可以完美解决这些问题。策略模式定义了一系列算法,并将每个算法封装起来,使它们可以互换使用,且独立于使用它们的客户端代码。✨ 优点:消除了大量ifswitch判断易于扩展符合开闭原则(OCP)
2025-04-14 15:10:22
497
原创 AutoDog填充狗:一款高效的表单自动填充Chrome插件
AutoDog填充狗 是一款简单实用的表单自动填充插件,适合开发者、测试人员以及所有需要频繁填写相似表单的用户。它不仅支持普通的表单字段,还能很好地处理富文本编辑框内容,提升用户体验。如果你也在开发类似的插件或工具,欢迎与我交流,共同进步!
2025-04-01 11:34:58
1097
3
原创 springboot+dynamic-datasource(多数据源)+quartz(定时任务)
springboot+dynamic-datasource(多数据源)+quartz(定时任务):quartz框架整合多数据源的文章没找到,所以自己试了几次,找到方法时候在这里分享一下如何配置
2025-03-27 09:10:13
363
原创 ubuntu如何搭建ftp
现在,您应该能够使用FTP客户端通过您服务器的IP地址连接到FTP服务器。如果您创建了新用户,请使用那些凭据进行连接。在Ubuntu上搭建FTP服务器,可以使用。配置vsftpd:编辑配置文件。
2025-01-15 10:05:01
306
原创 jenkins+docker部署springboot+vue项目
后端的Dockerfile和docker启动脚本。jenkins后端流水线脚本。jenkins前端流水线脚本。
2024-12-18 15:00:48
357
原创 GO项目搭建
`package modelsimport “gorm.io/gorm”type UserInfo struct {gorm.ModelName stringPassWord stringPhone stringEmail stringIdentity stringClientId stringClientPort stringLoginTime uint64HeartbeatTime uint
2024-09-20 08:30:32
655
原创 logstach+elasticsearch+kibana整合后台.log文件
logstach+elasticsearch+kibana整合后台.log文件
2024-05-15 17:33:24
291
原创 springboot多数据源
1.添加多个数据原配置,这里是一盒postgres一个ck两个数据库。这样就可以根据需要在不同的Mapper中切换数据源了。
2023-06-02 16:14:53
670
原创 springboot创建线程池
在上面的代码中,我们使用@Autowired注解将ExecutorService类型的线程池对象注入到MyService类中,并通过@Qualifier注解指定了该bean的名称为"threadPoolTaskExecutor"。这样,在doSomething方法中,我们就可以使用该线程池对象执行异步任务了。如果我们在@Configuration类中使用@Bean注解创建了一个线程池对象,并指定了该bean的名称,那么我们可以通过该bean的名称将线程池对象注入到其他类中。
2023-05-24 14:59:13
982
原创 JAVA接入chatGtp
Java是一种高级编程语言,由Sun Microsystems于1995年推出。它是一种面向对象的语言,具有跨平台性和可移植性,可以在不同的操作系统和硬件平台上运行。Java语言的特点包括:简单易学、面向对象、安全性高、可移植性强、多线程、动态性、高性能等。Java语言广泛应用于Web开发、移动应用开发、游戏开发、企业级应用开发等领域。1.登录chatGpt官网,获取token(可以百度一下,如何获取token)
2023-03-22 11:44:45
1376
原创 Java循环依赖使用@Lazy(懒惰的)注解解决
SpringIoC容器会在启动的时候实例化所有单实例 bean 。如果我们想要实现 Spring 在启动的时候延迟加载 bean,即在首次调用bean的时候再去执行初始化,就可以使用 @Lazy 注解来解决这个问题。
2023-02-07 11:57:24
2156
原创 关于子查询与left join查询数据的小实验
数据库共20W条数据(无索引)链接查询:SELECT api.*, uu.user_name FROM apl_application api LEFT JOIN uas_use uu ON uu.user_id = api.cust_manager_id;子查询:SELECT *, ( SELECT uu.user_name FROM uas_use uu WHERE uu.user_id = api.cust_manager_id ) FROM apl_ap
2022-05-25 17:00:16
170
原创 flink从数据库读数据
package com.example.flink;import org.apache.flink.api.common.typeinfo.BasicTypeInfo;import org.apache.flink.api.common.typeinfo.TypeInformation;import org.apache.flink.api.java.ExecutionEnvironment;import org.apache.flink.api.java.operators.DataSourc.
2022-03-22 16:48:17
4512
1
原创 activiti入门
springboot项目pom<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache
2022-01-25 18:22:15
282
原创 docker启动shell
#操作/项目路径(Dockerfile存放的路劲)BASE_PATH=/home/project# 源jar路径 SOURCE_PATH=/var/lib/jenkins/workspace#项目名称PROJECT_NAME=Eureka#docker 镜像/容器名字或者jar名字 这里都命名为这个SERVER_NAME=eureka-0.0.1-SNAPSHOT#容器idCID=$(docker ps | grep "eureka" | awk '{print $1}')#镜像id.
2022-01-16 01:54:02
805
原创 单独用一个线程执行任务
/** * @Author ex-liujiwei * @Date 2022/1/6 14:28 */@Servicepublic class ConcurrentService { public static void test01(){ // 创建线程池 ThreadFactory threadFactory = new ThreadFactoryBuilder().setNameFormat("liujiwei-pool-%.
2022-01-06 15:30:59
502
原创 获取用户ip地址
package com.example.demo.util;import lombok.extern.slf4j.Slf4j;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import javax.servlet.http.HttpServletRequest;import java.io.IOException;/** * @Author ex-liujiwei * @Date 2021/12/14 11:33 */.
2021-12-14 11:45:19
694
原创 BeanWrapperImpl属性映射
@Slf4jpublic class test03 { public static void main(String[] args) { Users users = new Users(); users.setId(1); users.setName("张三"); getProperty(users); } public static void getProperty(Object objec.
2021-12-13 17:03:03
886
原创 JPA复杂查询条件构造(两种写法)
private Specification<Users> getSpecification(){ return (Specification<Users>)(root, query, criteriaBuilder)->{ List<Predicate> predicates = new ArrayList<>(); Predicate gtId = criteriaBuilder...
2021-11-23 18:08:58
1276
原创 Sets.difference筛选set集合
public static void main(String[] args) { HashSet set1 = new HashSet(); set1.add(1); set1.add(2); set1.add(3); set1.add(4); set1.add(5); HashSet set2 = new HashSet(); set2.add(1); set..
2021-11-22 17:27:14
2033
原创 关于接口重复提交的解决方案
1,前端控制,按钮点击后置灰,无法再次点击2,前端重定向,就是页面点击了提交按钮后,跳转到其他页面,防止再次点击3,重点:后台接口控制原理解释:第一次访问接口时,将某个标志存入redis,设置过期时间,例如三秒内访问超过一次就算重复提交,下次再访问时先查询redis中是否有缓存,有则说明3秒没过,返回错误信息,如果没有就是超过三秒了,可以访问示例:第一步:写个接口@Inherited@Target(ElementType.METHOD)@Retention(RetentionP
2021-11-15 18:08:01
2522
Spire.doc(jar包),实现wode文档转换成图片
2020-11-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人