- 博客(1304)
- 资源 (6)
- 收藏
- 关注

原创 java全家桶之63:FactoryBean在多线程环境下使用时需要注意哪些问题?
在 Spring 框架中使用时,若涉及多线程环境,需特别注意以下问题。
2025-07-17 22:06:40
304

原创 java全家桶之62:springBean三级缓存
核心价值:通过提前暴露半成品 Bean + 动态代理生成,高效解决单例 Bean 循环依赖,支持 AOP 无缝集成。设计定位:是 Spring 容器生命周期管理的基石,而非开发者直接调用的工具(透明化处理)。避坑指南避免构造器循环依赖,优先用 Setter 注入。多例 Bean 或异步场景需额外考虑线程安全。复杂代理逻辑(如 CGLIB)可能增加调试难度。深入理解三级缓存,能更好驾驭 Spring 容器的运作机制,高效应对循环依赖及代理相关难题。
2025-07-17 22:05:56
595

原创 java全家桶之61:spring factrorybean使用例子
Spring 的接口用于封装复杂对象的创建逻辑,允许开发者通过编程方式定制 Bean 的实例化过程。以下是。
2025-07-17 20:51:29
242

原创 java全家桶之60: IoC 如何解决循环依赖
循环依赖是指两个或多个 Bean 相互依赖,形成闭环的情况(如 A 依赖 B,B 又依赖 A)。Spring IoC 容器通过巧妙的机制解决了这个问题。
2025-07-17 16:22:36
250

原创 java全家桶之59: java redisTemplate
本文详细介绍了Spring Data Redis中的RedisTemplate使用方式。主要内容包括:RedisTemplate的核心特性如数据结构操作、事务支持和连接池管理;基本配置方法及依赖引入;针对字符串、哈希、列表、集合和有序集合等数据结构的操作示例;高级功能如事务、发布订阅、管道和Lua脚本;以及最佳实践建议(序列化选择、连接池配置等)。文章还涵盖了Spring Boot集成方案和常见问题解决方法,为开发者提供了全面的Redis操作指南。
2025-07-17 08:46:40
381

原创 java全家桶之58: restTemplate返回list
在 Spring 中,使用 RestTemplate 获取 List 类型的结果需要特殊处理,因为 Java 的类型擦除机制使得无法直接获取List<T>类型。
2025-07-17 08:40:40
326

原创 java全家桶之57: spring webclient
基于 Reactor 实现非阻塞 I/O:流畅的链式调用风格:支持连接池和请求复用:支持过滤器机制:JSON、XML、SSE 等。
2025-07-17 08:36:58
138

原创 java全家桶之56: java RestTemplate
RestTemplate 是 Spring 提供的用于访问 RESTful 服务的客户端工具,主要特点包括:支持 HTTP 协议的所有方法(GET、POST、PUT、DELETE 等)自动将请求/响应转换为 Java 对象支持 URI 模板和 URI 参数内置异常转换机制支持拦截器和错误处理注意:从 Spring 5.0 开始,RestTemplate 进入维护模式,官方推荐使用 WebClient,但 RestTemplate 仍被广泛使用。
2025-07-17 08:33:33
373

原创 jdbctemplate
推荐场景:中小型项目快速开发、复杂 SQL 直写、轻量级数据访问层。替代方案MyBatis:需复杂 SQL 动态拼接或多表映射时。:领域模型驱动、追求 Repository 模式时。R2DBC:响应式数据库访问需求。通过合理使用 JdbcTemplate,开发者可显著提升数据库操作效率,同时保持代码简洁与安全。建议结合具体场景选择搭配 ORM 或纯 SQL 方案。
2025-07-17 07:46:13
357

原创 DDD 六边形架构
/ 领域服务依赖端口。| 外部技术 | <-- | Ports | --> | 领域层 |如数据库(MySQL)、外部 API(HTTP Client)、缓存(Redis)。)是 DDD(领域驱动设计)中一种解耦业务逻辑与技术实现的架构模式,核心思想是。如 REST API(Spring MVC)、CLI 命令行、消息队列消费者。:接口(Interface),描述领域层如何与外部交互。:领域层不关心数据如何存储、API 如何暴露。:适配器 → 端口 ← 领域层(依赖倒置)。
2025-07-17 00:42:58
741

原创 element-ui el-upload如何传递token
this.$message.error('上传失败![' + JSON.parse(rsp).msg + ']')<el-button type="primary">导入Xlsx</el-button>message: '只能上传jpg/png文件,且不超过2M!default: '只能上传jpg/png文件,且不超过500kb'
2025-07-16 00:25:17
417

原创 Go实战全家桶之85: goExcel导入操作
摘要:该代码实现了文件上传和Excel数据导入功能。上传接口限制文件大小为5MB,接收文件后保存到指定路径,然后调用Excel导入模块处理数据。导入模块读取Excel文件中的工价表数据,验证数据有效性后,将数据保存到数据库。主要包含用户验证、文件处理、数据校验和数据库操作等功能,支持计件工资数据的批量导入。
2025-07-16 00:21:30
895

原创 Go实战全家桶之84: goExcel 通用导出框架
摘要:本文展示了一个基于Go语言的Excel导出功能实现。代码包含两个主要部分:1) 测试用例展示了如何查询计件工资数据并导出Excel文件;2) GoexcelFrame结构体封装了Excel操作的核心功能,包括数据准备、表头设置、数据类型处理等。实现支持多种数据类型(整数、小数、日期等)的导出,并提供了文件名生成、文件保存等功能。通过PutInt、PutDecimal等方法可以灵活设置列格式,最终生成的Excel文件包含格式化后的数据和表头。该模块通过结构化的方式简化了Excel导出流程,适用于各种业务
2025-07-13 14:38:39
622

原创 Go实战全家桶之83: go ExportExcel
Excelize库提供了丰富的功能来操作Excel文件,包括:创建、读取和保存Excel文件设置单元格样式、列宽和行高添加图表、图片等复杂元素支持流式处理大数据量134。对于简单的导出需求,上述基本示例已经足够。如果需要更复杂的功能,如合并单元格、条件格式、公式等,Excelize也提供了相应的API支持。
2025-07-13 10:12:45
466

原创 Go实战全家桶之78: github.com/grpc-ecosystem/go-grpc-middleware起什么作用
当 gRPC 请求到达时,它会按顺序通过这个链上的每个中间件,最后到达实际的业务处理器。如果你在开发 Go gRPC 服务并需要添加日志、监控、认证等功能,这个库几乎是必不可少的。一个中间件就是一个函数/组件,它包裹着真正的 RPC 处理器,可以在调用处理器之前、之后或环绕处理器执行自定义逻辑。许多与核心业务逻辑无关但又必不可少的横切关注点(如认证、日志、监控)需要在每个 RPC 方法调用前后执行。捕获 RPC 处理器中的 panic,防止整个服务崩溃,并返回优雅的错误(例如。
2025-07-11 13:37:27
521

原创 Go实战全家桶之77: go saas应用有什么优势
Go 语言在 SaaS(Software as a Service)应用开发中具有显著优势,尤其在高并发、云原生和资源效率等场景下表现突出。以下是其核心优势及典型应用场景分析:高并发处理能力Go 原生支持 goroutine 和 channel 机制,可轻松创建数百万级轻量级线程,处理高并发请求时资源消耗远低于传统线程模型。例如,在实时数据推送(如 WebSocket 服务)或物联网设备消息处理中,Go 的性能可达 Java 的 2-3 倍。案例:联犀物联网平台通过 Go 处理百万级设备连接,结合消息队列
2025-07-10 17:08:22
535

原创 java全家桶之55: Functional Java有什么好的开源库
优先使用原生 Java Stream/Lambda 解决 80% 常见问题。:集成 Reactor/RxJava 的响应式流 + 函数式特性。// Vavr 模式匹配替代 switch-case。在复杂状态管理/错误处理场景使用 Vavr 的。示例项目:重构现有代码的循环为函数式链式调用。// 示例:链式异常处理 + 模式匹配。// 示例:不可变集合 + 高阶函数。// 示例:Stream 增强操作。// 补充 Stream 缺失操作。函数组合(支持柯里化和部分应用)缺失的 Stream 操作(
2025-07-06 22:20:41
992

原创 java全家桶之52: java常见库commons-lang3
Apache Commons Lang 3 是一个广泛使用的 Java 工具库,提供了大量辅助工具类,可简化常见开发任务。// 10位随机字母数字。// 时间归零到当天。// 1-100随机数。-- 检查最新版本 -->// "17" (当前JRE版本)// 是否Windows系统。的判空/拼接,避免 NPE。// 日期加减/舍入。
2025-07-06 10:46:42
858

原创 java全家桶之48:dbcode之测试工程dbtrain
这是一个Java项目的Maven配置文件和测试类代码片段。项目使用Spring Boot框架,包含数据库连接配置(MySQL/Oracle)、FTP服务、Redis等组件设置。测试类TestJavaConfig验证了JavaConfig配置的加载,展示了包含FTP、数据库连接池(Druid)、RabbitMQ等详细配置信息。项目还定义了一个CustomerApiEntity实体类,对应数据库"customer"表,包含客户信息相关字段。代码体现了典型的Spring Boot企业应用结构,
2025-07-04 15:08:27
637

原创 java全家桶之46:java拦截器和Filter有什么区别
选择依据:需要处理原始Servlet请求/响应 → 选择Filter需要与Spring上下文交互 → 选择Interceptor需要在控制器方法前后精细控制 → 选择Interceptor需要处理静态资源 → 选择Filter需要最底层、最高效的处理 → 选择Filter在实际项目中,两者经常配合使用,Filter处理底层HTTP相关事务,Interceptor处理业务相关的横切关注点。
2025-07-04 11:55:51
588

原创 java全家桶之42:JavaConfig=》db config加密解密
本文详细介绍了基于SpringBoot和Druid的MySQL数据源配置方案。通过application.yml文件配置数据库连接参数,采用AES加密存储密码,配置类自动完成解密。核心实现包括:1)MysqlDatasourceConfig类配置Druid连接池参数;2)主应用Dbapi集成Eureka、Feign等微服务组件;3)JavaConfig类处理密码解密和日志记录。该方案支持连接池参数优化,如最大等待时间、初始连接数等配置,并提供了完善的MyBatis集成。加密模块采用Hutool工具实现AES
2025-07-03 13:22:37
747

原创 java全家桶之39:java easyes
1. 实体类(注解驱动映射)@IndexName(value = "user_index") // 索引名@IndexId(type = IdType.CUSTOMIZE) // 自定义ID@IndexField(fieldType = FieldType.KEYWORD) // 精确匹配@IndexField(fieldType = FieldType.TEXT, analyzer = Analyzer.IK_SMART) // 中文分词2. Mapper 接口。
2025-07-02 08:36:10
363

原创 java全家桶之35: jvm如何调优
JVM 调优是 Java 应用性能优化的关键环节,合理的调优可以显著提高应用吞吐量、降低延迟并减少资源消耗。
2025-06-25 00:02:09
637

原创 java全家桶之32: java高并发系统
要构建高性能的Java高并发系统,需综合运用底层并发机制、分布式架构及深度优化策略。以下从设计原则、关键技术、架构模式到实战案例系统化解析:线程池优化核心参数配置:根据任务类型定制线程池():CPU密集型:核心线程数 ≈ CPU核数 + 1IO密集型:核心线程数 ≈ CPU核数 × 2拒绝策略:选用避免任务丢失,或结合队列削峰(如)。异步非阻塞模型响应式编程:使用Spring WebFlux或Project Reactor替代同步MVC,减少线程阻塞。事件驱动:Netty的NIO模型通过管理连接,单线程处理
2025-06-24 08:54:36
789

原创 java全家桶之31: Spring MVC 中使用 ThreadLocal 的案例
ThreadLocal 在 Spring MVC 中常用于存储当前请求的上下文信息,如用户身份、请求参数等,这些信息在整个请求处理周期中都是可用的。下面是一个完整的使用案例。
2025-06-23 22:00:44
561

原创 java全家桶之11:java mapstruct
java复制下载@Mapper// 简单映射// 字段名不同时的映射// 反向映射java复制下载@Mapper。
2025-06-16 00:45:47
1292

原创 java全家桶之8:java泛型通用WEB接口,开发者神器、工业级巨匠
该模块实现了系统用户的基本管理功能,包括数据实体定义、数据库操作、业务逻辑处理和Web接口,采用分层架构设计。// 公司邮箱 dataType:varchar。// 工号 dataType:varchar。// 密码 dataType:varchar。// 备注 dataType:varchar。// 企业ID dataType:int。// 员工标识 dataType:int。// 创建人 dataType:int。// 操作人 dataType:int。// 主键 dataType:int。
2025-06-15 15:13:50
986

原创 java全家桶之1:jtest25测试工具开源
在Java JDK8工程中编译依赖Groovy时出现报错,通常由以下几个原因导致。-- 或 3.0.19 -->:Groovy 版本过高(如 Groovy 4.x 在 JDK 8 上编译)。│ ├── groovy // Groovy 源码。:降级到 Groovy 3.0.x 或 2.5.x。// 确保初始化Groovy环境。-- Maven 依赖 -->-- Maven 配置 -->:Groovy 依赖未正确传递。检查依赖树:确认无版本冲突。
2025-06-13 17:07:52
919

原创 Go实战全家桶之76:通用PageResult设计--源于实践项目,接口设计也是生产力!https://gitee.com/leijmdas/goweb.git
/返回日期转为int64。//比较值:一个或多个值。//最后一个查询字段。// 通用表查询请求数据。
2025-05-17 18:23:14
501

原创 Go实战全家桶之69:go极简代码工具--源于实战项目,开发者神器工业级巨匠
"dept_name": "深圳总公司","dept_name": "若依科技","leader": "若依","leader": "若依","msg": "成功",
2025-04-28 22:55:48
497

原创 Go实战全家桶之15: GO依赖注入框架godi泛型接口-源于实战项目,开发者神器工业级巨匠
/ 使用reflect.TypeOf获取接口的动态类型。// 使用reflect.TypeOf获取接口的动态类型。// 取指针指向的类型。// 取指针指向的类型。// 检查是否是指针类型。// 检查是否是指针类型。原来需要生成注入代码。
2024-10-07 07:16:13
1647
原创 go gorm UpdateColumns
db.Model(&user).UpdateColumns(User{Verified: false}) // false会被更新。Secret string `gorm:"-"` // 通常会被忽略。提供了更底层的更新控制,适合在需要精确控制更新行为或追求性能时使用。批量更新时确保WHERE条件正确,避免意外更新过多记录。:会更新零值(0, false, "" 等)是 GORM 提供的一个更新方法,它与。// 但UpdateColumns会更新。// 批量更新时不需触发回调。// 只更新Name字段。
2025-07-18 17:01:58
388
原创 go gorm Updates为什么没有更新0值
go复制下载Age int // 移除 omitempty 标签GORM 的Updates方法默认忽略结构体中的零值,这是为了避免意外覆盖数据库中的现有值。如果需要更新零值,可以使用map或明确指定要更新的字段。这种行为设计是为了提供更安全的默认操作,防止开发者无意中清空字段。
2025-07-18 16:59:47
253
原创 GORM 中 Updates 和 Update 的区别
特性UpdateUpdates更新字段数量只能更新单个字段可以更新多个字段参数类型列名 + 值map 或结构体零值处理总是更新默认会更新零值返回值返回*gorm.DB返回*gorm.DB使用频率较少使用更常用批量更新需要结合 Where可以直接批量更新。
2025-07-18 16:43:23
69
原创 spring aop原理
Spring AOP 的本质是通过动态代理在运行时织入横切逻辑代理机制选择:JDK 代理(接口)与 CGLIB(无接口)互补覆盖场景。拦截器链:责任链模式实现通知的有序执行。容器集成:后置处理器 () 在 Bean 初始化后动态替换代理对象。最佳实践:优先使用接口 + JDK 代理以减少依赖;复杂切面逻辑考虑 AspectJ 编译时增强。通过合理设计切入点表达式和通知类型,可显著提升代码可维护性和模块化程度。
2025-07-17 22:25:42
341
my cpytest --python test frame
2011-11-06
mycppunit test frame
2011-11-06
my java unit
2011-11-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人