汇集日常常用工具。
统一在con.jian.tools.core包里。
- 基础数据类型转换。
- md5、base64、unicode、Properties、随机字符串等。
- requset相关。
- 反射工具。
- 基于SimpleDateFormat的再封装。
- 用法:
DateTools.formatDate();
- 基于HttpClient 4。
- 用法:
String str = HttpTools.getInstance().sendHttpGet(url);
System.out.println(str);
- 用法:
Map<String, Object> map = MapTools.custom().put("test1", "test1").put("test2", "test2").put("test1", "test4").build();
Map<String, Object> map2 = MapTools.custom().build();
- 用法:
FileTools.fileWrite(); //写
FileTools.fileReader(); //读
FileTools.fileWatch(); //检查更新
JsonTools 基于接口设计,可以实现自己的json实现。
- 接口:JsonInterface。
- 实现:JsonImpl 默认实现,基于jackson。
- 用法:
JsonTools.toJsonString(); //Object转json字符串
JsonTools.jsonToObj(); //json字符串转Object
JsonTools.xmlToObj(); //xml字符串转Object
JsonTools.getIfs(); //返回工具类注册的实现。
- 自定义实现 请实现 JsonInterface 接口。
工具包自动扫描,当前classes包里的类。如果没有类实现JsonInterface,会使用默认实现。如果有取第一个实现。以后可能会支持扫描jar。
CacheTools 基于接口设计,可以实现自己的缓存实现。比如:redis等。
- 对象:CacheObject 缓存对象。
- 接口:Cache。
- 抽象类:CacheAbstract。默认实现了缓存的自动回收,2小时一次,默认过期时间2小时。
- 实现:CacheImpl 默认实现,基于内存,map结构。
- 用法:
CacheTools.setCacheObj(); //设置缓存。
CacheTools.getCacheObj(); //获取缓存
CacheTools.isTimeout(); //是否超时
CacheTools.clearCacheObj(); //清除缓存
CacheTools.getIfs(); //返回工具类注册的实现。
- 自定义实现 你可以继承 CacheAbstract,这样比较简单。也可以实现 Cache 接口,这样更自由。
工具包自动扫描,当前classes包里的类。如果没有类继承 CacheAbstract或者实现Cache接口,会使用默认实现。如果有取第一个实现。以后可能会支持扫描jar。
AccessTokenTools 基于接口设计,可以实现自己的token实现。比如:auth2.0等。
- 对象:AccessToken token对象。
- 接口:AccessTokenInterface。
- 抽象类:AccessTokenAbstract。
- 实现:AccessTokenImpl 默认实现,基于内存,map结构。
- 用法:
AccessTokenTools.createToken(); //创建token
AccessTokenTools.getToken(); //获取token
AccessTokenTools.getValue(); //获取保存的对象
AccessTokenTools.checkToken(); //检测是否有效
AccessTokenTools.clearToken(); //清除token
AccessTokenTools.getIfs(); //返回工具类注册的实现。
- 自定义实现 你可以继承 AccessTokenAbstract,这样比较简单。也可以实现 AccessTokenInterface 接口,这样更自由。
工具包自动扫描,当前classes包里的类。如果没有类继承 AccessTokenAbstract或者实现AccessTokenInterface接口,会使用默认实现。如果有取第一个实现。以后可能会支持扫描jar。
com.jian.auto包。通过读取数据库信息自动生成基础java类。可以生成如下项目:
注意: 这里使用c3p0做连接,需要引入其相关包。如果最后不想使用c3p0可以生成代码后,删除相关包。
- 示例:
public class Demo {
public static void main(String[] args) {
String jdbcUrl = "jdbc:mysql://127.0.0.1:3306/auth?characterEncoding=utf8";
String user = "root";
String password = "123456";
String driverClass = "com.mysql.jdbc.Driver";
String prefix = "s_";
String separator = "_";
//包配置
Config config = new Config("com.testAuto");
config.setOverWrite(true);
//数据库配置
ConfigDB cdb = new ConfigDB(jdbcUrl, user, password, driverClass, prefix, separator);
AutoCreateManager test = new AutoCreateManager(config, cdb, 1);
test.start();
// test.start(tableName);
}
}
- 生成目录结构:
com.testAuto
com.testAuto.config
com.testAuto.controller
com.testAuto.dao
com.testAuto.dao.impl
com.testAuto.entity
com.testAuto.service
com.testAuto.service.impl
com.testAuto.util
-
介绍:
- Config: 包配置。
- ConfigDB: 数据库配置。
- AutoCreateManager: 自动生成工具工厂。
- AutoCreate: 自动生成工具接口。
- AbstractAutoCreate: 自动生成工具抽象。
- AutoCreateNormal: 自动生成工具的实现。
- AutoCreateSpringBoot: 自动生成工具的实现。
-
自定义生成工具:继承AbstractAutoCreate或者实现AutoCreate接口。再new AutoCreateManager时注入你的实现即可。
-
注解:
- API:可以生成接口文档。
- Excel:用于导出excel。
通过META-INF/services/javax.servlet.ServletContainerInitializer方式启动,从而实现自己的注解机制。仿spring。
注意: 由于怕不同类型项目之间有影响,所以没添加META-INF/services/javax.servlet.ServletContainerInitializer文件,如要使用该方式请自行添加。 内容:com.tools.web.ServletContainerInitializerImpl
spring boot项目
推荐使用。由于后期项目基于spring boot所以推荐使用。