# 常用工具类
# 工具组件
组件名 | 版本 | 描述 |
---|---|---|
Jackson | 2.9.6 | Json解析 |
hutool-all | 5.5.7 | Hutool工具包 |
jjwt | 0.9.0 | Token生成 |
cxf | 3.2.6 | WebService框架 |
poi | 4.1.2 | Excel处理 |
Apache CommonUtils | - | commons-lang3/common-math3 |
# 工具类列表
名称 | 作用 |
SpringContextUtils | 对Spring容器进行各种上下文操作 |
ThreadLocalManager | 通过在ThreadLocal存储map信息,实现维护多个信息,="col">在多线程或异步处理中需要在主线程中手动传递给子线程 |
DesensitizationUtil | 数据脱敏工具类 |
JwtUtil | JWT(JSON Web Token)工具类 |
ExcelUtils | excel导入导出工具类,支持xls与xlsx格式文件导入导出 |
WebServiceUtil | webservice客户端工具,集成了apache cxf框架 |
HttpUtil | http请求工具类,集成了apache httpclient |
IPUtils | Ip地址工具类 |
UUIDUtils | UUID工具类 |
MD5Util | MD5工具类 |
CacheTenantUtil与CacheUtil | 缓存工具类 |
RedisTenantUtil与RedisUtil | Redis工具类 |
ExportPdfUtils | 导出pdf工具类 |
AccountUtil | 登录账号工具类 |
# spring上下文工具类-SpringContextUtils
# getBean
/**
* 根据Bean名称获取Bean对象
*
* @param name Bean名称
* @return 对应名称的Bean对象
*/
SpringContextUtils.getBean(String name) ;
/**
* 根据Bean的类型获取对应的Bean
*
* @param requiredType Bean类型
* @return 对应类型的Bean对象
*/
SpringContextUtils.getBean(Class<T> requiredType);
/**
* 根据Bean名称获取指定类型的Bean对象
*
* @param name Bean名称
* @param requiredType Bean类型(可为空)
* @return 获取对应Bean名称的指定类型Bean对象
*/
SpringContextUtils.getBean(String name, Class<T> requiredType);
# containsBean
/**
* 判断是否包含对应名称的Bean对象
*
* @param name Bean名称
* @return 包含:返回true,否则返回false。
*/
SpringContextUtils.containsBean(String name);
# getType
/**
* 获取对应Bean名称的类型
*
* @param name Bean名称
* @return 返回对应的Bean类型
*/
SpringContextUtils.getType(String name);
# ThreadLocal上下文工具类-ThreadLocalManager
# getAll
/**
* @return
*/
ThreadLocalManager.getAll();
# put
/**
* 设置一个值到ThreadLocal
*
* @param key 键
* @param value 值
*/
ThreadLocalManager.put(String key, Object value);
/**
* 设置一个值到ThreadLocal
*
* @param map map
* @return 被放入的值
*/
ThreadLocalManager.put(Map<String, Object> map);
# remove
/**
* 删除参数对应的值
*
* @param key
*/
ThreadLocalManager.remove(String key);
# clear
/**
* 清空ThreadLocal
*
*/
ThreadLocalManager.clear();
# get
/**
*
* @param key 键
* @return 值
*/
ThreadLocalManager.get(String key);
/**
* 从ThreadLocal中获取值
* @param key 键
* @param t 值泛型
* @param <T> n 值, 不存在则返回null, 如果类型与泛型不一致, 可能抛出{@link ClassCastException}
* @return
*/
ThreadLocalManager.get(String key, Class<T> t);
# getAndRemove
/**
* 获取一个值后然后删除掉
* @param key
* @return
*/
ThreadLocalManager.getAndRemove(String key);
}
# 数据脱敏工具类-DesensitizationUtil
# desensitization
/**
* 脱敏方法
* 保留前几位,后几位,中间的替换成*号
* 手机号 desensitization("13545678910",3,4) return 135****8910
* 身份证号 desensitization("10522198707294510",6,4) return 105221********4510
*
* @param value 原值
* @param left 左边保留的位数,如果为负数,重置为0
* @param right 右边保留的位数,如果为负数,重置为0
* @return
*/
DesensitizationUtil.desensitization(String value, int left, int right);
/**
* 邮箱地址脱敏,对@之前的内容进行脱敏
* email("12345678@163.com",2,2) return12***78@163.com>
*
* @param email
* @return
*/
DesensitizationUtil.email(String email, int left, int right);
# jwt工具类-JwtUtil
# generate
/**
* 生成token
*
* @param claims
* @return
*/
JwtUtil.generate(Map<String, Object> claims);
/**
* 生成token
*
* @param claims
* @param expireDate
* @return
*/
JwtUtil.generate(Map<String, Object> claims, Date expireDate);
/**
* 生成token
*
* @param header 传入头部信息map
* @param claims 要传送消息map
* @param expireDate 过期时间
* @return
*/
JwtUtil.generate(Map<String, Object> header, Map<String, Object> claims, Date expireDate);
# getClaim
/**
* 解密jwt
*
* @param jwt
* @return
* @throws Exception
*/
JwtUtil.getClaim(String jwt)
# isSigned
/**
* 校验是不是jwt签名
*
* @param token
* @return
*/
JwtUtil.isSigned(String token)
# verify
/**
* 校验签名是否正确
*
* @param token
* @return
*/
JwtUtil.verify(String token)
# getHeader
/**
* 获取头部信息map
* 使用方法 : getHeader(token).get("alg");
*
* @param token
* @return
*/
JwtUtil.getHeader(String token)
# getIssuedAt
/**
* 获取jwt发布时间
*/
JwtUtil.getIssuedAt(String token)
# getExpiration
/**
* 获取jwt失效时间
*/
JwtUtil.getExpiration(String token)
# isExpired
/**
* 验证token是否失效
*
* @param token
* @return true:过期 false:没过期
*/
JwtUtil.isExpired(String token)
# excel导入导出工具类-ExcelUtils
# export
/**
* 导出excel到指定目录文件,支持xls或xlsx
*
* @param destFilePath 目标文件路径,如 E:/test.xls
* @param data 待导出的数据集合,集合中元素类型可以为对象、List<Object>或Map<String,Object>,每个元素代表一行数据,data为多行数据
* @return
*/
public static void export(String destFilePath, List<?> data) throws IOException;
/**
* 导出excel到指定目录文件,支持xls或xlsx
*
* @param destFilePath 目标文件路径,如 E:/test.xls
* @param sheetName sheet名称,默认为sheet1
* @param data 待导出的数据集合,集合中元素类型可以为对象、List<Object>或Map<String,Object>,每个元素代表一行数据,data为多行数据
* @return
*/
public static void export(String destFilePath, String sheetName, List<?> data) throws IOException;
/**
* 导出excel到指定目录文件,支持xls或xlsx
*
* @param destFilePath 目标文件路径,如 E:/test.xls
* @param data 待导出的数据集合,集合中元素类型可以为对象、List<Object>或Map<String,Object>,每个元素代表一行数据,data为多行数据
* @param aliasMap 可修改导出的excel的标题别名,key为待导出数据的字段名,value为对应标题别名
* 注意:仅在集合的元素类型为对象或Map<String,Object>时生效
* @return
*/
public static void export(String destFilePath, List<?> data, Map<String,String> aliasMap) throws IOException;
/**
* 导出excel到指定目录文件,支持xls或xlsx
*
* @param destFilePath 目标文件路径,如 E:/test.xls
* @param sheetName sheet名称,默认为sheet1
* @param data 待导出的数据集合,集合中元素类型可以为对象、List<Object>或Map<String,Object>,每个元素代表一行数据,data为多行数据
* @param aliasMap 可修改导出的excel的标题别名,key为待导出数据的字段名,value为对应标题别名
* 注意:仅在集合的元素类型为对象或Map<String,Object>时生效
* @return
*/
public static void export(String destFilePath, String sheetName, List<?> data, Map<String,String> aliasMap) throws IOException;
# exportXls
/**
* excel导出-写出到客户端下载(写出到Servlet),导出为xls格式
*
* @param response HttpServletResponse
* @param fileName 文件名,不带文件后缀,如 员工信息表
* @param data 待导出的数据集合,集合中元素类型可以为对象、List<Object>或Map<String,Object>,每个元素代表一行数据,data为多行数据
*/
public static void exportXls(HttpServletResponse response, String fileName, List<?> data) throws IOException;
/**
* excel导出-写出到客户端下载(写出到Servlet),导出为xls格式
*
* @param response HttpServletResponse
* @param fileName 文件名,不带文件后缀,如 员工信息表
* @param data 待导出的数据集合,集合中元素类型可以为对象、List<Object>或Map<String,Object>,每个元素代表一行数据,data为多行数据
* @param aliasMap 可修改导出的excel的标题别名,key为待导出数据的字段名,value为对应标题别名
* 注意:仅在集合的元素类型为对象或Map<String,Object>时生效
*/
public static void exportXls(HttpServletResponse response, String fileName, List<?> data, Map<String,String> aliasMap) throws IOException;
# exportXlsx
/**
* excel导出-写出到客户端下载(写出到Servlet),导出为xlsx格式
*
* @param response HttpServletResponse
* @param fileName 文件名,不带文件后缀,如 员工信息表
* @param data 待导出的数据集合,集合中元素类型可以为对象、List<Object>或Map<String,Object>,每个元素代表一行数据,data为多行数据
*/
public static void exportXlsx(HttpServletResponse response, String fileName, List<?> data) throws IOException;
/**
* excel导出-写出到客户端下载(写出到Servlet),导出为xlsx格式
*
* @param response HttpServletResponse
* @param fileName 文件名,不带文件后缀,如 员工信息表
* @param data 待导出的数据集合,集合中元素类型可以为对象、List<Object>或Map<String,Object>,每个元素代表一行数据,data为多行数据
* @param aliasMap 可修改导出的excel的标题别名,key为待导出数据的字段名,value为对应标题别名
* 注意:仅在集合的元素类型为对象或Map<String,Object>时生效
*/
public static void exportXlsx(HttpServletResponse response, String fileName, List<?> data, Map<String,String> aliasMap) throws IOException;
# getData
/**
* excel导入,默认导入所有sheet中的数据
* 注意每个sheet中的数据都要与columNames保持对应
* 否则慎用此方法,推荐使用getData(MultipartFile file, int sheetIndex, String[] columNames)
*
* @param file excel的MultipartFile对象
* @param columNames 列对应的字段名
* @return 返回数据集合
*/
public static List<Map<String, Object>> getData(MultipartFile file, String[] columNames) throws IOException;
/**
* excel导入
*
* @param file excel的MultipartFile对象
* @param sheetIndex sheet的编号,0表示第一个Sheet, -1表示全部Sheet
* @param columNames 列对应的字段名
* @return 返回数据集合
*/
public static List<Map<String, Object>> getData(MultipartFile file, int sheetIndex, String[] columNames) throws IOException;
/**
* excel导入,默认导入所有sheet中的数据
* 注意每个sheet中的数据都要与columNames保持对应
* 否则慎用此方法,推荐使用getData(String path, int sheetIndex, String[] columNames)
*
* @param path excel文件绝对路径
* @param columNames 列对应的字段名
* @return 返回数据集合
*/
public static List<Map<String, Object>> getData(String path, String[] columNames) throws IOException;
/**
* excel导入
*
* @param path excel文件绝对路径
* @param sheetIndex sheet的编号,0表示第一个Sheet, -1表示全部Sheet
* @param columNames 列对应的字段名
* @return 返回数据集合
*/
public static List<Map<String, Object>> getData(String path, int sheetIndex, String[] columNames) throws IOException;
/**
* excel导入,默认导入所有sheet中的数据
* 注意每个sheet中的数据都要与columNames保持对应
* 否则慎用此方法,推荐使用getData(File file, int sheetIndex, String[] columNames)
*
* @param file excel的File对象
* @param columNames 列对应的字段名
* @return 返回数据集合
*/
public static List<Map<String, Object>> getData(File file, String[] columNames) throws IOException;
/**
* excel导入
*
* @param file excel的File对象
* @param sheetIndex sheet的编号,0表示第一个Sheet, -1表示全部Sheet
* @param columNames 列对应的字段名
* @return 返回数据集合
*/
public static List<Map<String, Object>> getData(File file, int sheetIndex, String[] columNames) throws IOException;
# webservice客户端工具类-WebServiceUtil
# 默认超时时间
/**
* 默认服务器连接超时时间,单位ms
*/
private static final long DEFAULT_CONNECTION_TIMEOUT = 30000;
/**
* 默认服务器响应超时时间,单位ms
*/
private static final long DEFAULT_RECEIVE_TIMEOUT = 180000;
如果需要自定义超时时间,可调用getClient的重载方法
# getClient
/**
* 构建客户端
*
* @param url 服务端请求的地址
* @return 客户端
*/
public static Client getClient(String url);
/**
* 构建客户端
*
* @param url 服务端请求的地址
* @param connectionTimeout 服务器连接超时时间
* @param receiveTimeout 服务器响应超时时间
* @param inInterceptors in拦截器列表,此处in及out方向是以client的角度来看
* @param outInterceptors out拦截器列表
* @return 客户端
*/
public static Client getClient(
String url,
long connectionTimeout,
long receiveTimeout,
List<Interceptor<? extends Message>> inInterceptors,
List<Interceptor<? extends Message>> outInterceptors);
# send
/**
* 发送webservice请求
*
* @param url 请求URL
* @param method 请求方法
* @param params 请求参数
* @return 响应结果
*/
public static String send(String url, String method, Object... params);
# sendByClient
/**
* 发送webservice请求
*
* @param client 客户端
* @param method 请求方法
* @param params 请求参数
* @return 响应结果
*/
public static String sendByClient(Client client, String method, Object... params);
# sendByQname
/**
* 通过Qname的方式发送webservice请求
* 主要针对服务端的SEI(webservice终端接口)和SIB(webservice接口实现bean)不在同一个包内的情况
*
* @param url 请求URL
* @param method 请求方法
* @param params 请求参数
* @return 响应结果
*/
public static String sendByQname(String url, String method, Object... params);
# sendByClientQname
/**
* 通过Qname的方式发送webservice请求
* 主要针对服务端的SEI(webservice终端接口)和SIB(webservice接口实现bean)不在同一个包内的情况
*
* @param client 客户端
* @param method 请求方法
* @param params 请求参数
* @return 响应结果
*/
public static String sendByClientQname(Client client, String method, Object... params);
# getOperateQName
/**
* 针对服务端的SEI(webservice终端接口)和SIB(webservice接口实现bean)不在同一个包内的情况
* 需要使用此方法先查找操作对应的Qname,再通过Qname执行对应操作
*
* @param client 客户端
* @param method 方法名
* @return QName
*/
public static QName getOperateQName(Client client, String method);
# http请求工具类-HttpUtil
# 默认超时时间
/**默认的客户端从服务器读取数据的超时时间,单位ms*/
private static final int DEFAULT_SOCKET_TIMEOUT = 60000;
/**默认的客户端和服务器建立连接的超时时间,单位ms*/
private static final int DEFAULT_CONNECT_TIMEOUT = 10000;
/**默认的从连接池获取连接的超时时间,单位ms*/
private static final int DEFAULT_CONNECTION_REQUEST_TIMEOUT = 10000;
如果需要自定义超时时间,可调用buildRequestConfig方法
# buildRequestConfig
/**
* 构建RequestConfig,在自定义超时时间时使用
*
* @param socketTimeout 客户端从服务器读取数据的超时时间
* @param connectTimeout 客户端和服务器建立连接的超时时间
* @param connectionRequestTimeout 从连接池获取连接的超时时间
* @return RequestConfig
*/
public static RequestConfig buildRequestConfig(int socketTimeout, int connectTimeout, int connectionRequestTimeout);
# get
/**
* get请求
*
* @param url url(可以不带参数,也可以带参数如ip:port/demo?name=张三&age=20 或者是 ip:port/demo/{张三}/{20})
* @return 响应结果
*/
public static String get(String url);
/**
* get请求
*
* @param url url(不带参数)
* @param params 参数
* @return 响应结果
*/
public static String get(String url, Map<String, String> params);
/**
* get请求
*
* @param url url(不带参数)
* @param headers header键值对
* @param params 参数
* @return 响应结果
*/
public static String get(String url, Map<String, String> headers, Map<String, String> params);
/**
* get请求
*
* @param url url(不带参数)
* @param headers header键值对
* @param params 参数
* @param requestConfig 请求配置信息,可配置超时时间
* @return 响应结果
*/
public static String get(String url, Map<String, String> headers, Map<String, String> params, RequestConfig requestConfig);
# postForm
/**
* post请求-form提交参数
*
* @param url url
* @param params 参数
* @return
*/
public static String postForm(String url, Map<String, String> params);
/**
* post请求-form提交参数
*
* @param url url
* @param headers header键值对
* @param params 参数
* @return
*/
public static String postForm(String url, Map<String, String> headers, Map<String, String> params);
/**
* post请求-form提交参数
*
* @param url url
* @param headers header键值对
* @param params 参数
* @param requestConfig 请求配置信息,可配置超时时间
* @return
*/
public static String postForm(String url, Map<String, String> headers, Map<String, String> params, RequestConfig requestConfig);
# postJson
/**
* post请求-json提交参数
*
* @param url url
* @param json 参数
* @return
*/
public static String postJson(String url, String json);
/**
* post请求-json提交参数
*
* @param url url
* @param headers header键值对
* @param json 参数
* @return
*/
public static String postJson(String url, Map<String, String> headers, String json);
/**
* post请求-json提交参数
*
* @param url url
* @param headers header键值对
* @param json 参数
* @param requestConfig 请求配置信息,可配置超时时间
* @return
*/
public static String postJson(String url, Map<String, String> headers, String json, RequestConfig requestConfig);
# postXml
/**
* post请求-xml提交参数
*
* @param url url
* @param xml 参数
* @return
*/
public static String postXml(String url, String xml);
/**
* post请求-xml提交参数
*
* @param url url
* @param headers header键值对
* @param xml 参数
* @return
*/
public static String postXml(String url, Map<String, String> headers, String xml);
/**
* post请求-xml提交参数
*
* @param url url
* @param headers header键值对
* @param xml 参数
* @param requestConfig 请求配置信息,可配置超时时间
* @return
*/
public static String postXml(String url, Map<String, String> headers, String xml, RequestConfig requestConfig);
# putForm
/**
* put请求-form提交参数
*
* @param url url
* @param params 参数
* @return
*/
public static String putForm(String url, Map<String, String> params);
/**
* put请求-form提交参数
*
* @param url url
* @param headers header键值对
* @param params 参数
* @return
*/
public static String putForm(String url, Map<String, String> headers, Map<String, String> params);
/**
* put请求-form提交参数
*
* @param url url
* @param headers header键值对
* @param params 参数
* @param requestConfig 请求配置信息,可配置超时时间
* @return
*/
public static String putForm(String url, Map<String, String> headers, Map<String, String> params, RequestConfig requestConfig);
# putJson
/**
* put请求-json提交参数
*
* @param url url
* @param json 参数
* @return
*/
public static String putJson(String url, String json);
/**
* put请求-json提交参数
*
* @param url url
* @param headers header键值对
* @param json 参数
* @return
*/
public static String putJson(String url, Map<String, String> headers, String json);
/**
* put请求-json提交参数
*
* @param url url
* @param headers header键值对
* @param json 参数
* @param requestConfig 请求配置信息,可配置超时时间
* @return
*/
public static String putJson(String url, Map<String, String> headers, String json, RequestConfig requestConfig);
# putXml
/**
* put请求-xml提交参数
*
* @param url url
* @param xml 参数
* @return
*/
public static String putXml(String url, String xml);
/**
* put请求-xml提交参数
*
* @param url url
* @param headers header键值对
* @param xml 参数
* @return
*/
public static String putXml(String url, Map<String, String> headers, String xml);
/**
* put请求-xml提交参数
*
* @param url url
* @param headers header键值对
* @param xml 参数
* @param requestConfig 请求配置信息,可配置超时时间
* @return
*/
public static String putXml(String url, Map<String, String> headers, String xml, RequestConfig requestConfig);
# delete
/**
* delete请求
*
* @param url url(可以不带参数,也可以带参数如ip:port/demo?name=张三&age=20 或者是 ip:port/demo/{张三}/{20})
* @return 响应结果
*/
public static String delete(String url);
/**
* delete请求
*
* @param url url(不带参数)
* @param params 参数
* @return 响应结果
*/
public static String delete(String url, Map<String, String> params);
/**
* delete请求
*
* @param url url(不带参数)
* @param headers header键值对
* @param params 参数
* @return 响应结果
*/
public static String delete(String url, Map<String, String> headers, Map<String, String> params);
/**
* delete请求
*
* @param url url(不带参数)
* @param headers header键值对
* @param params 参数
* @param requestConfig 请求配置信息,可配置超时时间
* @return 响应结果
*/
public static String delete(String url, Map<String, String> headers, Map<String, String> params, RequestConfig requestConfig);
# http工具类使用注意事项
1.header传递的数据含有中文时,为防止乱码,建议放入数据前将数据编码,取出数据后将数据解码。
例如放入header时
headers.put("author", URLEncoder.encode("张三", "UTF-8"));
从header取出数据后
URLDecoder.decode(request.getHeader("author"), "UTF-8")
2.springboot环境下,服务端若想接收以form表单形式发送过来的put和delete请求的参数,需要添加一个过滤器FormContentFilter
或其子类OrderedFormContentFilter
,否则无法接收到参数。
@Bean
public OrderedFormContentFilter orderedFormContentFilter() {
return new OrderedFormContentFilter();
}
# Ip地址工具类-IPUtils
# ipExistsInRange
/**
* 验证IP是否属于某个IP段
* @param ip 所验证的IP号码
* @param ipSection IP段(以'-'分隔)
* @return
*/
public static boolean ipExistsInRange(String ip, String ipSection)
# getIpAddr
/**
* 获取IP地址
* <p>
* 使用Nginx等反向代理软件, 则不能通过request.getRemoteAddr()获取IP地址
* 如果使用了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串IP地址,X-Forwarded-For中第一个非unknown的有效IP字符串,则为真实IP地址
*/
public static String getIpAddr(HttpServletRequest request)
# getClientIp
/**
* 获取客户端本地ip,需要客户端手动获取后放到header中
* @param request
* @return
*/
public static String getClientIp(HttpServletRequest request)
# getClientMAC
/**
* 获取客户端本地Mac地址,需要客户端手动获取后放到header中
* @param request
* @return
*/
public static String getClientMAC(HttpServletRequest request)
# UUID工具类-UUIDUtils
# getUUID
/***
* 生成去除"-"的uuid主键
* @return
*/
public static String getUUID()
# MD5工具类-MD5Util
# getUUID
/**
* md5加密
* @param origin 要加密的原文
* @param charsetname 编码
* @return
*/
public static String MD5Encode(String origin, String charsetname)
# 导出pdf工具类
# exportPDF
/**
* 导出pdf工具方法
*
* @param name 导出文件名称
* @param list 导出的数据
* @param invoker 导出的类实例
* @param expInfoMethod 导出文件的方法
* @param response HttpServletResponse
* @param <T> 泛型方法声明
*/
public static <T> void exportPDF(String name, List<T> list, Object invoker, Method expInfoMethod, HttpServletResponse response)
# 调用示例:
//导出pdf文件
try {
Object invoker = this.getClass().newInstance();
Method expInfoMethod = this.getClass().getMethod("addEachOpenApiInfo", OpenapiInfo.class, Document.class, Font.class, Font.class);
ExportPdfUtils.exportPDF("接口信息列表.pdf", openapiInfoList, invoker, expInfoMethod, response);
} catch (NoSuchMethodException | IllegalAccessException | InstantiationException e) {
e.printStackTrace();
log.error(ExceptionUtils.getMessage(e));
}
# Excel自定义导入工具类-HosExcelUtil
# getDataMap
/**
* 获取数据,返回 Map格式类型
* @param sheetManagement --SheetManager对象,sheet配置信息,自定义sheet的SheetExecute中获取
* @param wb--workbook对象
* @return 从sheet中读取的数据
*/
public static List<Map<String,Object>> getDataMap(SheetManagement sheetManagement, Workbook wb)
# 二维码工具-QRCodeUtil
# CreatQrImage
生成自定义大小中间没有logo的二维码图片,如下图
/**
* 生成自定义大小中间没有logo的二维码图片
*/
public static File CreatQrImage(String content,String format,String outFileUri,int ...size) throws IOException, WriterException{
return CreatQrImage(content,format,outFileUri,"",size);
}
# CreatQrImage
生成默认大小中间有logo的二维码图片,如下图
/**
* 生成默认大小中间有logo的二维码图片
*/
public static File CreatQrImage(String content,String format,String outFileUri,String logoUri) throws IOException, WriterException{
return CreatQrImage(content,format,outFileUri,logoUri,new int[]{});
}
# CreatQrImage
生成默认大小中间没有logo的二维码图片,如下图
/**
* 生成默认大小中间没有logo的二维码图片
*/
public static File CreatQrImage(String content,String format,String outFileUri) throws IOException, WriterException{
return CreatQrImage(content,format,outFileUri,"",new int[]{});
}
# CreatQrImage
生成自定义大小中间有logo的二维码图片,如下图
/**
* 创建我们的二维码图片
* @param content 二维码内容
* @param format 生成二维码的格式
* @param outFileUri 二维码的生成地址
* @param logoUri 二维码中间的logo
* @param size 用于设定图片大小(可变参数,宽,高)
* @throws IOException 抛出io异常
* @throws WriterException 抛出书写异常
*/
public static File CreatQrImage(String content,String format,String outFileUri,String logoUri, int ...size);
# parseQRImg
解析二维码中内容
/**
* 解析二维码中的内容
* @param filePath
* @return
* @throws IOException
* @throws NotFoundException
*/
public static String parseQRImg(String filePath) throws IOException,NotFoundException
# 登录账号工具类-AccountUtil
# getAccountId
/**
* 获取登录用户账号id
* @return
*/
public static String getAccountId();
# getAccountCode
/**
* 获取登录账号
* @return
*/
public static String getAccountCode();
# getTenantId
/**
* 获取登录用户的租户Id
**/
public static String getTenantId();
# getLoginUser
/**
* 获取当前登录用户
**/
public static HosUser getLoginUser();
# getToken
/**
* 获取token对象
* @return
*/
public static HosTokenAuthenticationToken getToken();
# setAuthentication
/**
* 设置认证信息
* @return
*/
public static void setAuthentication(Authentication authentication);
# getAuthentication
/**
* 获取认证信息
* @return
*/
public static Authentication getAuthentication();
# getGlobalUniqueID
/**
* 获取登录全局唯一变量id
* @return
*/
public static String getGlobalUniqueID();