bus-core 8.0.2 API
Packages
Package
Description
核心方法及数据结构包
注解包,提供增强型注解
注解包,提供项目环境增强
注解包,提供增强型注解和注解工具类,处理包括:
注解元素(AnnotatedElements)上的注解。
父元素上的注解(包括类、接口、方法、属性)。
注解上的注解。
父元素上的注解上的注解。
AnnotatedElement 对象实现
Bean相关操作,包括Bean信息描述,Bean路径表达式、动态Bean等
Bean拷贝实现,包括拷贝选项等
Bean值提供者方式封装
Bean路径,通过路径表达式查找或设置对象或子对象中的值
Bean路径节点
建造者工具
用于建造特定对象或结果,建造者模式的抽象。
提供简易缓存实现,此模块参考了jodd中的相应模块
文件缓存实现
各种缓存实现
Array、Date、List、Map以及Iterator等封装
提供数组相关封装
日期封装,日期的核心为DateTime类
日期构建
民俗文化
由于区域文化差异对于年月日等相关统称也有所不同
其他区域根据相关内容实现或重写相关方法即可
cn - 中文
en - 英文
中国传统文化/日历相关
生成八字
童限计算
童限计算方式
物候
夏季三伏
胎神
彭祖
数九
六十周期
九星
七曜
十神
十二神
二十八宿
西方文化相关
中文农历
中文公历/阳历
提供线程安全的日期格式的格式化和解析实现
提供日期解析相关封装,主要包括:
日期输出
函数封装
接口灵感来自于ActFramework
一个函数接口代表一个一个函数,用于包装一个函数为对象
在JDK8之前,Java的函数并不能作为参数传递,也不能作为返回值存在,此接口用于将一个函数包装成为一个对象,从而传递对象
列表分区或分段
Map相关封装,提供特殊Map实现
多参数类型的Map实现,包括集合类型值的MultiValueMap和Table
MultiValueMap:一个键对应多个值的集合的实现,类似于树的结构。
Table:使用两个键映射到一个值,类似于表格结构。
弱引用Map实现
队列
Queue相关封装正则表达式相关封装
Set相关封装Java8的stream相关封装
spliterator实现
编码解码封装编码封装
BaseN编码解码,提供将bytes和baseN的编码转换功能。
Base16
Base32
Base58
Base62
Base64
提供Hash算法的封装
MetroHash算法实现
各种比较器(Comparator)实现和封装
万能类型转换器以及各种类型转换的实现类,其中Convert为转换器入口,提供各种toXXX方法和convert方法
针对对象转换为String的封装
数据相关封装
如ID、电话、统一社会信用代码、密码、坐标系、数据脱敏等
提供单例对象的统一管理
IO相关封装,包括Inputstream、OutputStream、Buffer等实现
Buffer相关工具封装IO校验相关库和工具
CRC16相关算法封装为Checksum
压缩解压封装
IO流拷贝相关封装相关封装
对文件读写的封装,包括文件拷贝、文件读取、文件写出、行处理等
FileVisitor功能性实现,包括递归删除、拷贝等
针对ClassPath和文件中资源读取的封装
InputStream和OutputStream相关方法和类封装
数据单位相关封装,包括DataUnit数据单位和DataSize数据大小
基于JDK7+ WatchService的文件和目录监听封装,支持多级目录
语言特性包,包括大量便捷的数据结构,包括:
ANSI:ANSI编码
Builder:构建器
Caller:查找调用者
Copier:拷贝(复制)
Generator:生成器
Getter:getXXX抽象
Intern:规范化表示形式
Loader:加载器的抽象
Mutable:可变值对象封装
Range:区间和边界封装
Tuple:元组
命令行终端中ANSI 转义序列相关封装,如ANSI颜色等
调用者接口及实现。可以通过此类的方法获取调用者、多级调用者以及判断是否被调用
拷贝抽象实现,通过抽象拷贝,可以实现文件、流、Buffer之间的拷贝实现
异常处理相关封装
getXXX方法的接口和抽象实现
规范化表示形式封装
所谓规范化,即当两个对象equals时,规范化的对象则可以实现==
此包中的相关封装类似于 String#intern()
加载器的抽象接口和实现,包括懒加载的实现等
类加载相关封装和工具
服务提供接口SPI(Service Provider interface)机制相关封装,包括:
ListServiceLoader,提供列表形式的服务定义
MapServiceLoader,提供键值对形式的服务定义
提供可变值对象的封装,用于封装int、long等不可变值,使其可变
对象池封装实现
整体参考了:
https://github.com/DanielYWoo/fast-object-pool/
https://github.com/apache/commons-pool
基于分区的对象池实现,参考:https://github.com/DanielYWoo/fast-object-pool
引用工具封装,主要针对
Reference 工具化封装
主要封装包括:提供反射相关功能对象和类
对象实例化器,对象创建器
提供
Field 相关封装Kotlin反射相关封装,需引入:
kotlin-stdlib
kotlin-reflect
MethodHandles.Lookup 创建封装,以根据不同的条件查找MethodHandles提供
Method 相关封装选择器相关封装,包括:
WeightRandomSelector
提供线程及高并发封装
锁的实现
ThreadLocal相关封装
提供包装对象的抽象
通过包装接口,实现装饰模式或代理模式,以增强或目标对象功能
提供数学计算相关封装,包括排列组合等,入口为MathKit
网络相关工具
IPv4/IPv6
TLS相关
URL相关
提供文本相关操作的封装
布隆过滤,提供一些Hash算法的布隆过滤
DFA全称为:Deterministic Finite Automaton,即确定有穷自动机
用所有关键字构造一棵树,然后用正文遍历这棵树,遍历到叶子节点即表示文章中存在这个关键字。
我们暂且忽略构建关键词树的时间,每次查找正文只需要O(n)复杂度就可以搞定。
提供各种转义和反转义实现
文本查找实现,包括:
查找文本中的字符(正向、反向)
查找文本中的匹配字符(正向、反向)
查找文本中的字符串(正向、反向)
查找文本中匹配正则的字符串(正向)
字符串占位符相关封装,包括占位符替换变量和解析变量
占位符节点
字符串模板
文本替换类抽象及实现
提供通用树生成,特点:
节点解析器封装
XML和JAXB(Java Architecture for XML Binding)相关封装
由于JDK11+移除了"javax.xml.bind"相关类型,因此封装于extra模块
提供各种工具封装
xyz:做好一切必要准备,可以行动了