# jl-tools
**Repository Path**: laoshirenggo/jl-tools
## Basic Information
- **Project Name**: jl-tools
- **Description**: 包含开发编码能用到的一些封装工具,提升开发效率以及代码优雅性。
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 3
- **Forks**: 0
- **Created**: 2022-03-12
- **Last Updated**: 2023-10-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: Java
## README
#### 介绍
包含开发编码能用到的一些封装工具,提升开发效率以及代码优雅性。
主要功能含:
1. spring动态管理bean工具类。
2. 增强Map。
3. 增加List。
4. 线程池工具类。
5. 抽象数据判断,让任意数据类型基本判断只需使用一个方法即可。
6. 元祖。
7. 注解版aes或rsa自动加解密。
8. lambda引用解析工具,可以根据lambda引用获取类class、方法名、属性名,避免硬编码是开发首要的第一步。
9. spring接口代理封装,抽象共性,极大减少代码量。
10. 注解版拦截器。
11. 注解版过滤器。
12. 简化版的@validated,一个注解实现99%项目所需的校验功能。
13. 纯反射实现bean的拷贝,性能是BeanUtils的10-20倍,也解决BeanCopier无法读取有返回值的set方法而导致无法使用@Accessors编程,还实现了常用数据类型的转换。
14. io工具类。
15. 注解版项目启动完成后执行任务。
#### 安装依赖
```
io.gitee.laoshirenggo
tools
1.6
```
#### 增强Map
JMap继承Map,JHashMap继承HashMap,JConcurrentHashMap继承ConcurrentHashMap,只做增强,封装了常用方法,让代码更优雅。
##### 支持功能
1. 常用数据类型的get方法。
2. lambda方法引用的key。
3. 链式调用。
4. 转换为list。
5. 转换为实体。
6. 有HashMap以及ConcurrentHashMap两种实现。
```
//创建HashMap
JMap hashMap = new JHashMap<>();
//创建ConcurrentHashMap
JMap concurrentHashMap = new JConcurrentHashMap<>();
```
##### 常用数据类型的get方法
1. getString
2. getInt
3. getLong
4. getDouble
5. getBigDecimal
6. getBoolean
7. getLocalDateTime
8. getTimestamp
```
jmap.getString("demo");
```
##### lambda方法引用的key
```
jmap.get(Demo::getName);
```
##### 链式调用
```
JMap jmap = new JHashMap()
.set(Demo::getName, "张三")
.set("age", 18);
String name = jmap.getString("name");
Integer age = jmap.getInteger(Demo::getAge);
```
##### 转换为list
```
//key转换为list
JList key = jmap.toList().key();
//value转换为list
JList