# LeCode-Exercise **Repository Path**: AlixJC/LeCode-Exercise ## Basic Information - **Project Name**: LeCode-Exercise - **Description**: 日常练习代码 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2022-01-19 - **Last Updated**: 2026-08-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LeCode-Exercise 项目说明文档 ## 项目简介 `LeCode-Exercise` 是一个 Java 语言为主的开源项目,包含了多种设计模式、工具类、Excel 操作、二维码生成、AOP 日志记录等功能模块。该项目适用于学习 Java 编程、设计模式、数据处理、工具封装等常见开发任务,适合 Java 初学者和中级开发者参考学习。 本项目主要包含以下功能模块: - **设计模式实现**:包括单例模式、工厂模式等经典设计模式的实现。 - **Excel 操作**:支持 Excel 文件的读写、导出、导入、数据校验等功能。 - **二维码生成**:支持生成带 Logo 的二维码,并提供编码和解码功能。 - **工具类封装**:包括日期处理、字符串处理、集合操作、类型转换、敏感词处理等常用工具类。 - **AOP 日志记录**:通过 Spring AOP 实现操作日志记录功能。 - **异常处理**:统一的异常处理机制和错误码封装。 ## 目录结构 ``` src/ ├── main/ │ ├── java/ │ │ ├── DesignPatterns/ # 设计模式相关实现 │ │ ├── Excle/ # Excel 操作相关类 │ │ ├── QRCode/ # 二维码生成与解析 │ │ ├── log_aop/ # AOP 日志记录 │ │ ├── utils/ # 工具类封装 │ │ ├── others.java # 其他测试类 │ │ └── typeConversion/ # 类型转换示例 ``` ## 功能模块说明 ### 1. 设计模式实现 #### 单例模式(Singleton) - `Singleton1` 到 `Singleton5` 提供了五种不同的单例实现方式,包括懒汉式、双重检查锁、静态内部类、枚举等。 #### 工厂模式(Factory) - 使用 Guava 的 `EventBus` 实现观察者模式与工厂模式结合的事件发布与订阅机制。 ### 2. Excel 操作 #### Excel 读写 - `ExcelUtil`、`PoiUtil`、`ExcelImportService` 等类提供 Excel 文件的创建、导出、导入、数据校验等功能。 - 支持大数据量导出(使用 `SXSSFWorkbook` 避免内存溢出)。 - 支持通过注解方式定义 Excel 映射字段。 #### 工具类 - `ExcelImportUtil` 提供 Excel 导入的统一接口。 - `CellValueService` 处理单元格值的解析与转换。 - `FileReaderUtils` 提供多种文件读取方式(IO/NIO/RandomAccessFile)。 ### 3. 二维码生成 - `QRCodeUtil` 提供二维码生成与解码功能。 - 支持嵌入 Logo 图片。 - 支持输出为 `BufferedImage` 或写入文件流。 ### 4. AOP 日志记录 - `LogAop` 使用 Spring AOP 实现操作日志记录。 - `OperationLog` 注解用于标记需要记录日志的方法或类。 ### 5. 工具类封装 #### 常用工具类 - `DateUtil`:日期格式化、解析、计算等。 - `StringUtil`:字符串处理、脱敏、校验等。 - `BigDecimalUtil`:高精度数值运算。 - `BeanConv`:Java Bean 转换工具(基于 Dozer)。 - `SensitiveWordUtil`:敏感词脱敏处理。 - `CollectionUtil`:集合操作工具类。 - `StreamUtil`:Java 8 Stream API 示例。 ### 6. 异常处理 - `BusinessException`:业务异常封装。 - `ServiceException`:服务层异常封装。 - `Result`:统一返回结果封装类。 - `ExceptionUtils`:异常统一处理工具类。 ## 使用说明 ### 环境要求 - JDK 1.8 或以上版本 - Maven 3.x - IDE(如 IntelliJ IDEA 或 Eclipse) ### 构建与运行 1. 克隆项目: ```bash git clone https://gitee.com/AlixJC/LeCode-Exercise.git ``` 2. 使用 Maven 构建: ```bash mvn clean install ``` 3. 运行测试类或主类: - 单例模式测试:运行 `Singleton1` 到 `Singleton5` 的 `main` 方法。 - Excel 操作:运行 `ExcelRun` 或 `RunExcelUtils`。 - 二维码生成:运行 `RunQRCode`。 - 工具类测试:运行 `UtilTest` 或各工具类的 `main` 方法。 ### 示例代码 #### 生成二维码 ```java QRCodeUtil.encode("https://www.example.com", "logo.png", "output.png", true); ``` #### 导出 Excel ```java List list = StreamUtil.getObject(); ExcelRun.listToExcel(list); ``` #### 使用单例 ```java Singleton4 instance = Singleton4.getInstance(); ``` #### 记录操作日志 ```java @OperationLog public void someBusinessMethod() { // 业务逻辑 } ``` ## 贡献指南 欢迎提交 Pull Request 和 Issue。请遵循以下贡献流程: 1. Fork 项目 2. 创建新分支 (`git checkout -b feature/new-feature`) 3. 提交更改 (`git commit -am 'Add some feature'`) 4. 推送分支 (`git push origin feature/new-feature`) 5. 创建 Pull Request ## 许可证 本项目采用 MIT 许可证。详见 [LICENSE](LICENSE) 文件。