# easytools **Repository Path**: zhuangjiaju/easytools ## Basic Information - **Project Name**: easytools - **Description**: java web工程的最佳实践 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 4 - **Created**: 2024-07-04 - **Last Updated**: 2025-09-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EasyTools java卓越工程实战, 让你的代码变得更加优雅。 # 这个项目解决了什么问题 * 带领大家看到大厂的一些代码规范 * 大家代码规范统一,提高代码的可读性 * 提供各种实战案例,提升你的编码能力 # 本项目地址 * [GitHub](https://github.com/zhuangjiaju/easytools) * [gitee](https://gitee.com/zhuangjiaju/easytools) * [CSDN](https://blog.csdn.net/fish7790714) # 帮忙点个⭐Star 开源不易,如果觉得EasyTools对您的工作还是有帮助的话,请帮忙在github star 的右上角点个⭐Star,您的支持是使EasyTools变得更好最大的动力。 # 目录 ## 项目规范 * [使用统一 `Reuslt` 对象去封装返回值](doc/result-package.md) * [告别代码中遍地的 try-catch,使用 spring 全局统一异常处理](doc/controller-exception-handler.md) * [基于hibernate-validator,java前端入参校验最佳实践](doc/hibernate-validator.md) * [java 开源项目是如何将多个 module 版本统一配置的?](doc/flatten-maven-plugin.md) * 项目中使用traceId 来整个链路最终 * 一个好的项目目录结构是什么样子的? * 不使用join 到底是怎么写sql的? ## 源码解析 * [大厂面试必备系列:一文彻底搞懂 Cglib 代理](doc/cglib-proxy.md) * [大厂面试必备系列:一文彻底搞懂 Jdk 动态代理](doc/jdk-proxy.md) * [Java对象复制系列一: Apache 这么常用的工具类,性能居然如此差?](doc/bean-utils-test.md) * [Java对象复制系列二: 手把手带你写一个 Apache BeanUtils](doc/bean-utils-apache.md) * [Java对象复制系列三: 手把手带你写一个 Spring BeanUtils](doc/bean-utils-spring.md) * [Java对象复制系列四: 还在使用 Spring BeanUtils 复制属性?这个工具性能秒杀它](doc/mapper-struct-demo.md) * [Java对象复制系列五: 最快速度、方便的对象复制工具 Mapper Struct 的高阶应用](doc/mapper-struct-spring.md) * [Java对象复制系列六: 史上最快的对象复制工具 Mapper Struct 原理浅析](doc/mapper-struct-detail.md) * [手把手带你写一个精简版 HashMap 的 put 方法](doc/hash-map-put.md) * [手把手带你写一个精简版 HashMap 的 get 方法](doc/hash-map-get.md) * [史上最详细的 HashMap 的 put 方法的源码注释](doc/hash-map-put-source.md) * [史上最详细的 HashMap 的 get 方法的源码注释](doc/hash-map-get-source.md) * [java 中 i++ 到底是否线程安全?](doc/ipp-demo.md) * jdk21 虚拟线程 * jdk8 lambda ## EasyExcel 源码解析 * 了解csv 、xls、xlsx的区别 * 设计原理 * 手写读excel * 手写写excel ## 以下是水文 * [还在代码中写DateUtil?是时候说再见啦](doc/hutool-date-util.md) * [还在代码中写HttpUtil?是时候说再见啦](doc/hutool-http-util.md) * [java 如何一行代码生成随机数据?](doc/hutool-random-util.md) * [用 Hutool 一行代码搞定压缩、解压缩](doc/hutool-zip-util.md) * [Java 如何不用再每次新建线程,直接使用公共线程池](doc/hutool-thread-util.md) * [Java 图片缩放、裁剪、水印神器](doc/hutool-img-util.md) * [Java 如何快速根据 key 获取枚举的值?](doc/hutool-enum-util.md) * [Java 一行代码如何扫描一个包下面所有的类?](doc/hutool-class-util.md) * [还在用 System.currentTimeMillis() 计时?试试 Hutool 的 TimeInterval](doc/hutool-time-interval.md) * [Java 中怎么解决 0.1 + 0.2 不等于 0.3?](doc/hutool-number-util.md) * [Java 中最全的 hash 算法集合](doc/hutool-hash-util.md) * [Java 中快速生成唯一id](doc/hutool-id-util.md) * [Java 如何提取身份证中的生日](doc/hutool-idcard-util.md) * [Java 中如何获取一个中文的拼音](doc/hutool-pinyin-util.md) * [Java 中如何支持任意格式的压缩和解压缩](doc/hutool-compress-util.md) * [Java 中如何快速读取 CSV 文件](doc/hutool-csv-util.md) * [Java 如何获取一个 class 的所有属性和方法](doc/hutool-reflect-util.md) * [Java 中如何执行命令行方法](doc/hutool-runtime-util.md) * [Java 如何快速实现一个先入先出的缓存(FIFO Cache)?](doc/hutool-fifo-cache.md)