青铜 诸事顺遂

面向对象、面向过程

面向过程编程(POP)和面向对象编程(OOP)是两种主要的编程范式。理解它们的核心区别,并通过 Java(一种典型的面向对象语言)来举例说明,可以帮助你更深入地掌握这两种思想。 一、面向过程编程(Procedure Oriented Programming) 核心思想:将程序看作一系列按顺序执行的操

吴书松 发布于 2026-02-26

Spring Boot 3.x.x + JDK 21 虚拟线程使用指南

1. 环境要求与配置 1.1 依赖配置 (pom.xml) xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http:/

吴书松 发布于 2026-01-26

CompletableFuture 用法全解

1. 基础创建方法 1.1 创建已完成的 Future java // 创建一个已完成的CompletableFuture CompletableFuture<String> completedFuture = CompletableFuture.completedFuture("Hello Wor

吴书松 发布于 2026-01-26

一款轻量化快速认证授权框架

項目地址:https://gitee.com/wushusong/wss-auth 快速接入 1、引入依赖 <dependency> <groupId>io.github.wushusong</groupId> <artifactId>

吴书松 发布于 2025-12-23

SpringGateway 构建全局缓存 Request 解决 body 不可重复读问题

增加全局缓存Request过滤器 /** * 全局缓存获取body请求数据(解决流不能重复读取问题) * * @author Lion Li */ @Component public class GlobalCacheRequestFilter implements GlobalFilter

吴书松 发布于 2025-11-26

jdk11之后版本,生成jre

从Java 11开始,Oracle不再单独提供JRE。相反,JRE需要通过JDK中的工具手动创建。 1、正常安装jdk17 2、进入jdk17目录 里面没有jre 3、输入命令生成 bin\jlink.exe --module-path jmods --add-modules java.deskto

吴书松 发布于 2025-11-15

记一次多线程批量处理耗时问题

场景:数据库1000万条数据,可以根据批次分组成4000个小组,然后通过多线程,去处理4000个小组,每个小组处理一批数据,将数据同步到redis 线程池配置: * 1、corePoolSize=10 * 2、maxPoolSize=128 * 3、queueCapaci

吴书松 发布于 2025-09-30

记一次springboot关闭,redis连接池关闭堵塞问题

背景 Lettuce连接池 再common包中,增加redis的配置类,并通过META-INF.spring注入到spring容器中 原来代码 /* * Copyright (c) 2020 jm4cloud Authors. All Rights Reserved. * * Licensed

吴书松 发布于 2025-05-29

SpringBoot中文件上传下载

1. MultipartFile接口 - 基础文件上传处理 SpringBoot内置的MultipartFile接口是处理文件上传的基础工具,简单易用且功能完善。 在application.properties或application.yml中配置上传参数: spring: servlet:

吴书松 发布于 2025-05-19

限流

限流 1、固定窗口 首先维护一个计数器,将单位时间段当做一个窗口,计数器记录这个窗口接收请求的次数。 当次数少于限流阀值,就允许访问,并且计数器+1 当次数大于限流阀值,就拒绝访问。 当前的时间窗口过去之后,计数器清零。 假设单位时间是1秒,限流阀值为3。在单位时间1秒内,每来一个请求,计数器就加1

吴书松 发布于 2025-05-06