| 接口 | 说明 |
|---|---|
| IClassScanner |
扫描指定包下的类
|
| IPlugin |
插件, 主要2个方法
1 start() 初始化
2 close() 关闭
|
| IVisitor<T> |
访问者接口
|
| 类 | 说明 |
|---|---|
| AddressesParser |
解析多地址
|
| Application |
应用信息
|
| AtomicStarter |
使用AtomicBoolean实现一次性的启动
|
| ClassScanner |
扫描指定包下的类
|
| CollectionDecorator<E,R> |
集合的包装器
包含函数为 fun decorateCollection(col: Collection, transform: (T) -> R): Collection
跟 fun Iterable.map(transform: (T) -> R): List 功能是类似的, 只不过他不创建 ArrayList 对象来保存元素, 即不保存元素, 只是引用代理
使用:
1 如果集合元素很多, AbstractCollectionDecorator 优于 Iterable.map()
2 如果转换操作代价很大, Iterable.map() 优于 AbstractCollectionDecorator
3 如果需要序列化, Iterable.map() 优于 AbstractCollectionDecorator, 免得序列化一些不必要的东西
|
| Config |
配置数据,用于加载配置文件,并读取配置数据
Config data, can load properties file from CLASSPATH or File object.
|
| ConsistentHash<T> |
一致性hash实现
|
| DirtyFlagMap<K,V> |
标记是否脏了(改动过数据)的map
|
| DoneFlagList<T> |
标记元素已完成的列表
|
| FixedKeyMapFactory |
有固定key的map的工厂 主要是为2类场景准备 1. 存储从jdbc结果集中读取的行数据 2. OrmEntity 中的 data 属性的类型
|
| Formatter | |
| IConfig |
配置数据,用于加载配置文件,并读取配置数据
Config data, can load properties file from CLASSPATH or File object.
|
| InterfaceDelegateFieldIterator |
实现某接口的代理字段的迭代器
如类定义如下:
class Test: CharSequence by "", IIdWorker by SnowflakeIdWorker()
|
| ItEnumeration<T> |
Iterator转Enumeration
|
| LambdaClassScanner |
用lambda封装对扫描到的类文件的处理
|
| LazyAllocatedMap<K,V> | 已过时 |
| ModuleLogSwitcher |
按组件来切换启用日志
本项目中有多个组件, 如rpc/job/tracer/mq等, 组件之间会相互依赖, 如mq依赖rpc
我在开发某个组件时, 只对该组件日志感兴趣, 对其他组件日志不感兴趣, 这就需要禁用这些组件日志
但一个组件会配置有多个logger(如rpc有register/client/server等几个logger), 禁用该组件日志, 要禁用这多个logger的
log4j.properties 配置, 很繁琐
=> 直接在组件级别来控制是否启用日志 |
| MutablePair<A,B> |
可修改的pair
|
| MutableTriple<A,B,C> |
可修改的Triple
|
| PropDelegateFieldIterator |
实现属性读写的代理字段的迭代器
如属性定义如下:
public var id:Int by property()
|
| SimpleObjectPool<T> |
使用lambda实现的对象池
用来优化某些频繁调用的方法中的对象创建, 如ArrayList/HashMap/ConcurrentLinkedQueue对象的频繁创建, 而且这些对象自身也会占用大量的内存(如ArrayList/HashMap在操作大量元素时会创建大数组)
使用对象池中的对象, 必须是先借对象 borrowObject() 后归还对象 returnObject(), 这一般在同一个方法中, 这带来一个限制:
就是借来的对象不能溢出该方法, 如果对象溢出了(如作为方法的返回值被调用方使用), 则对象的控制权不在该方法中, 也就无法归还对象
|
| _BitSetKt | |
| _CollectionKt | |
| _DateKt | |
| _FileKt | |
| _FutureKt | |
| _IdKt | |
| _LoggerKt | |
| _NetKt | |
| _NumberKt | |
| _RandomKt | |
| _ReflectKt | |
| _StringKt | |
| _ThreadKt | |
| _TimerKt |
| 异常错误 | 说明 |
|---|---|
| InterceptException |
拦截器异常
|
| JkException |
异常基类
只是加了一个id, 以便前后端识别, 根据前端输出的异常id去匹配后端输出的日志记录
|