1 Star 4 Fork 0

疯狂的妞妞 / seaboot-commons

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

commons-utils

每个人的职业生涯,都会封装无数的工具类。

这就是那个属于我的工具包,跟 hu-tool、apache-commons 是同一类东西。

目的

  • 减少项目依赖,我们的项目,除了必要的第三方框架,一般只需要这一个;
  • 形成二次封装,减轻开源框架升级带来的影响,项目一般不直接调用第三方框架;
  • 通过工具,形成一定规范,大家遵循同样的操作步骤,避免产生多种逻辑。

目前我们所有的程序都依赖这个工具包。

代码调整

  • 2019/05/04:项目转为 maven 工程;

  • 2019/09/06:优化:日期格式化、数字格式化、随机数,更正后减少对象创建,并且多线程安全;

  • 2019/09/06:修改文件IO工具,InputStream 统一不关闭,需要程序员手动关闭,目的是为了减轻程序员的记忆负担, 在编码的时候,不需要特地去看 API,记住自己 new 的 InputStream,必须自己关闭;

  • 2019/09/06:HttpClient 版本升级至4(已经移除);

  • 2019/09/06:增加简单的数据库工具包,包名db(已转移到其它开源项目);

  • 2019/12/07:新增 EventBus 数据总线,与谷歌的相比,增加了一定的代码耦合,传递消息必须使用Event对象,便于后期维护 (消息发送、侦听之间,如果无任何耦合代码,很难找到两个相关联的侦听与广播,不知道广播是从哪里发出来的,或者找不到侦听函数);

  • 2019/12/07:Quartz 定时任务基本工具(已经移除,作为业务依赖);

  • 2020/05/25:删除pdf工具,原因:实际业务需求过少,仅仅只是为了在pdf中添加公司水印,实际开发中,在接口中增加一个代码切面即可,不需要单独封装;

  • 2020/05/25:EventBus代码增加代码注释,删除无用的函数;

  • 2020/05/25:去除代码中的所有异常栈打印,异常以运行时异常的方式抛出;

  • 2020/05/25:去除Handler,原因:维护成本过大,使用次数过少(调整代码后,又重新增加此依赖,项目还是需要简单的队列);

  • 2020/05/25:调整自定义异常的相关代码,BizException 用于前端页面数据返回(不记录日志), FileException 用于文件处理异常,ServiceException 用于业务中不易触发,但是存在触发可能的异常;

  • 2020/05/28:删除 httpClient 代码,转移到 web 工程中,原因:个性化代码过多,使用时按实际业务场景配置;

  • 2020/05/15:Quartz 单独做一个Maven依赖,与 UploadFactory 一样,做成一个即插即用型的框架(2020/06/019 完成);

  • 2020/07/06:增加 TreeBuilder,用于组装树形结构;

  • 2020/07/20:增加 ResponseWriter,用于一些响应下载头的设置;FieldAccess 兼容 Map、HashMap;增加 Calculator,用于数学精确计算;

  • 2020/08/10:增加分词器 Tokenizer,简单的语句渲染,可以直接使用分词器,而不需要模版引擎,基于 StringTokenizer;

  • 2020/09/23:StringUtils 增加 cutPrefix 函数,用于截断字符串;

  • 2020/09/25:BufferedImageUtil 增加 createFontIcon 函数,用于生成文字图标;

  • 2020/10/28:拆分 java.sql 日期和 java.time 日期工具类;

  • 2020/11/20:反射工具类,增加获取泛型的方法;

  • 2020/11/26:调整 Converter,与 spring 共享类型转换工具;

  • 2021/02/21:FieldAccess 变得更加实用,并且符合设计规范,今后作为Java反射基础工具;

  • 2021/08/16:大幅度简化 Handler 的代码,使之更易于使用,逻辑也更加简单;

  • 2021-11-29:将 spring-core 作为项目依赖,如果 spring 已经存在工具接口规范,则直接使用spring规范,例如:Converter (类型转换工具);

  • 2022-01-24:所有的工具类,使用相同的时区/国际化,一次配置,全局有效,通过设置 cn.seaboot.common.bean.P 进行配置;

  • 2022-04-02:增加多线程工具,SingletonLock,基于信号量的一个工具

  • 2023-09-13:fastjson升级到最新版

使用说明

强依赖关系:

  • com.google.guava-23.0 基础工具
  • dom4j-2.1.3 xml解析
  • fastjson-2.0.40 json
  • freemarker-2.3.28 模版引擎
  • javax.servlet-3.0.1 servlet
  • org.springframework.core-5.1.14 spring工具
  • org.jetbrains.annotations-20.0.0 idea代码规范
  • reflect-asm-1.11.9 代码解析工具
  • slf4j-api-2.0.9 日志
  • zxing-core-3.3.0.jar 二维码

参与贡献

  1. Mr.css
MIT License Copyright (c) 2019 Mr.css Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

核心工具包,包括:IO、Java反射、Java类型转换、简单队列等,是所有项目的基础依赖。 展开 收起
Java
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/seaboot/commons.git
git@gitee.com:seaboot/commons.git
seaboot
commons
seaboot-commons
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891