# sjchn-commons **Repository Path**: sjchn/sjchn-commons ## Basic Information - **Project Name**: sjchn-commons - **Description**: 基础工具类组件等存放仓库 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2024-10-29 - **Last Updated**: 2025-06-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # sjchn-commons #### 介绍 当前框架是在工作中自我总结的开箱即用的基础模块信息,有许多功能,对应的工具类当然也是使用的hutool的,但是增加了一些自认为适用的其他功能,用于后续项目架构搭建和使用。 * commons-csv:针对csv文件的处理,添加了通过注解的方式将需要转换成csv文件、字符串的操作,例如下代码 ```java import java.io.FileOutputStream; import java.util.ArrayList; @Data class CsvObj { @CsvProperty("super") private boolean isSuper; @CsvProperty("admin") private Boolean isAdmin; @CsvProperty("user_id") private String userId; @CsvProperty("user_name") private String userName; @CsvProperty(value = "集合", dataInvokeMethod = "getPermission") @CsvGenerics(elementClass = CsvObjSub.class, mainSetterMethod = "add", elementSetterMethod = "setPermission") private List collectionSub; @CsvProperty("roles") private List roles; @CsvProperty("创建时间") @CsvDateFormat(pattern = JsonUtil.DATE_PATTERN) private Date createTime; @CsvProperty("修改时间") @CsvDateFormat(pattern = "yyyy/MM/dd") private LocalDate modifyTime; @CsvProperty("删除时间") @CsvDateFormat(pattern = JsonUtil.DATE_TIME_PATTERN) private LocalDateTime delDateTime; @CsvProperty(value = "数组", dataInvokeMethod = "getPermission") @CsvGenerics(elementClass = CsvObjSub.class, elementSetterMethod = "setPermission") private CsvObjSub[] allObjSubs; @CsvProperty(value = "test_sub", dataInvokeMethod = "getPermission", dataSetInvokeMethod = "setPermission") private CsvObjSub csvObjSub; @CsvProperty(value = "test_sub_json", formatJson = true) private CsvObjSub csvObjSubJson; } @Data class CsvObjSub { private String permission; } List objList = new ArrayList<>(); // 写出成字符串格式 String csvStr = CsvOperateUtil.writeObj2String(objList); // 通过流将当前对象写出 write2File(Files.newOutputStream(Paths.get("D\\test.csv")), objList); ``` 其余方法详情请大家看对应方法注释,暂时不支持扁平化属性类等方式,或者通过类似wrapper的方式让用户自定义,后续版本可能会实现扁平化,等一系列功能。 * commons-lang:为当前commons工程中的基础程序组件,在增加了一些自己的util和类,异常信息等,当然hutool工具中的已经很全了,后续如果我还有其他的也会在此处进行更新。 * commons-lang-web:增加自己用的对应web功能的一些基础信息,导入了spring-boot-web包,在此基础上写一些web相关的,比如拦截器什么的,项目中可能会使用到的注解,web项目中可能会使用到的父类等,后续有想法会继续更新。 #### 软件架构 sjchn-commons为父模块为pom项目其余均为子模块为jar项目,父模块只管理版本和依赖关系,子模块自己实现。 #### 安装教程 git克隆本仓库,maven install到本地仓库后面新建项目直接引用当前组件的坐标即可。