package cn.xxm.rediscluster.utils;
import javax.servlet.http.HttpServletRequest;
import java.io.*;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.text.DecimalFormat;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* String帮助类
*
* @author daice
*/
public class StringUtil {
private final static char[] DIGITS = {'0', '1', '2', '3', '4', '5', '6',
'7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
private final static int DIGITS_0 = '0';
private final static int DIGITSA9 = 'A' - '9' - 1;
private final static String[] PRE_ZERO = {"", "0", "00", "000", "0000",
"00000", "000000", "0000000"};
/**
* 返回异常的堆栈信息
*/
public static String throwableToString(Throwable t) {
if (t == null)
return "";
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
t.printStackTrace(pw);
return sw.toString();
}
/**
* 解析 IP 地址为长整数
*/
public static long ip2number(String strIP) {
if (strIP != null) {
StringTokenizer st = new StringTokenizer(strIP, ".");
if (st.countTokens() == 4) {
long lResultIP = 0;
while (st.hasMoreTokens()) {
int iToken = 0;
try {
iToken = Integer.parseInt(st.nextToken().trim());
} catch (Exception ex) {
iToken = -1;
}
if (iToken < 0 || iToken > 255) {
return -1L;
}
lResultIP = lResultIP << 8;
lResultIP = lResultIP | iToken;
}
return lResultIP;
}
}
return -1L;
}
public static String getUUID() {
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
return uuid;
}
/**
* 转化16进制字符串为整数
*/
public static int hex2int(String s) {
int iResult = 0;
int iLength = s.length() < 8 ? s.length() : 8;
int iTemp = 0;
for (int i = 0; i < iLength; i++) {
iTemp = s.charAt(i) - DIGITS_0;
if (iTemp > 9)
iTemp = iTemp - DIGITSA9;
iTemp &= 0xF;
iResult <<= 4;
iResult |= iTemp;
}
return iResult;
}
/**
* 格式化整数为16进制字符串
*/
public static String int2dec(int i, int digit) {
String s = String.valueOf(i);
int l = s.length();
if (l < digit) {
return PRE_ZERO[digit - l] + s;
}
if (l > digit) {
return s.substring(0, digit);
}
return s;
}
/**
* 格式化整数为16进制字符串
*/
public static String int2hex(int j) {
char[] buf = new char[8];
for (int i = buf.length - 1; i >= 0; i--) {
buf[i] = DIGITS[j & 0xF];
j >>>= 4;
}
return new String(buf);
}
/**
* 把输入的字节树组,逐字节转化为其16进制的文本描述形式
*
* @param buf 输入的字节树组
* @param off 需要转化的开始位置
* @param len 需要转化的结束位置
* @return 转化结果
*/
public final static String bytesToHex(byte[] buf, int off, int len) {
char[] out = new char[len * 2];
for (int i = 0, j = 0; i < len; i++) {
int a = buf[off++];
out[j++] = DIGITS[(a >>> 4) & 0X0F];
out[j++] = DIGITS[a & 0X0F];
}
return (new String(out));
}
/**
* 检测字符串是否为null,或者trim()以后的长度是否为0。
*
* @author <a href="mailto:myreligion@163.com">liu kaixuan</a>
* @date 2005-8-13
*/
public static boolean isEmpty(String s) {
if (s == null)
return true;
if (s.trim().length() == 0)
return true;
return false;
}
public static boolean isEmpty(Object obj) {
if (obj == null)
return true;
if (obj.toString().trim().length() == 0)
return true;
return false;
}
public static boolean isInteger(Object obj) {
try {
if (obj == null)
return false;
else if (obj.equals(""))
return false;
Integer.parseInt(obj.toString());
return true;
} catch (Exception e) {
return false;
}
}
public final static char[] TRSServerReservedChars = {'=', '(', ')', '[',
']', ',', '/', '@', '>', '<', '!', '&', '*', '^', '-', '+', '\'',
'\\'};
public final static char[] filterChars = {',', ',', ';', ';', '"', '“',
'”', '‘', '’', '=', '(', ')', '[', ']', ',', '/', '@', '>', '<',
'!', '&', '*', '^', '-', '+', '\'', '\\'};
/**
* 把TRS Search检索中关键字的保留字符去掉,免得出现问题。 <br>
* 在过滤关键词时不把?, % 转意。
*
* @param keyword 要处理的关键字
* @return 如果keyword为null,返回"";否则返回保留字符被转意以后的串。
* @see #replace4TRS(String, boolean)
*/
public static String replace4TRS(String keyword) {
return replace4TRS(keyword, false);
}
/**
* 把TRS Search检索中关键字的特殊字符换成空格,免得出现问题。<br>
* 关键字中的字符将会转换成空格。
*
* @param keyword 要处理的关键字
* @param escapeSimilarSearchChar 是否把keyword中的 ?, % 转意。
* @return 如果keyword为null,返回"";否则返回保留字符被换成空格以后的串。
*/
public static String removeTRSChars(String keyword,
boolean escapeSimilarSearchChar) {
if (keyword == null)
return "";
StringBuffer bufKeywords = new StringBuffer(
(int) (keyword.length() * 1.5));
for (int i = 0; i < keyword.length(); i++) {
char ch = keyword.charAt(i);
boolean removed = false;
for (int j = 0; j < filterChars.length; j++) {
if (ch == filterChars[j]) {
removed = true;
break;
}
}
if (!removed && escapeSimilarSearchChar) {
if (ch == '%') {
removed = true;
} else if (ch == '?') {
removed = true;
}
}
if (!removed) {
bufKeywords.append(ch);
} else {
bufKeywords.append(' ');
}
}
return bufKeywords.toString();
}
/**
* 把TRS Search检索中关键字的保留字符去掉,免得出现问题。
*
* @param keyword 要处理的关键字
* @param escapeSimilarSearchChar 是否把keyword中的 ?, % 转意。
* @return 如果keyword为null,返回"";否则返回保留字符被转意以后的串。
*/
public static String replace4TRS(String keyword,
boolean escapeSimilarSearchChar) {
if (keyword == null)
return "";
StringBuffer bufKeywords = new StringBuffer(
(int) (keyword.length() * 1.5));
for (int i = 0; i < keyword.length(); i++) {
char ch = keyword.charAt(i);
boolean escaped = false;
没有合适的资源?快使用搜索试试~ 我知道了~
springboot整合redis集群零配置
共126个文件
xml:68个
class:29个
java:25个
5星 · 超过95%的资源 需积分: 46 108 下载量 175 浏览量
2018-07-28
09:46:49
上传
评论 3
收藏 131KB ZIP 举报
温馨提示
Springboot整合Redis集群,零配置方式;另外用AOP实现了操作缓存的三套自定义注解,有兴趣的小伙伴可以试试看.
资源推荐
资源详情
资源评论
收起资源包目录
springboot整合redis集群零配置 (126个子文件)
StringUtil.class 25KB
Cache4JAdvice.class 7KB
DateUtil.class 6KB
CacheEditAdvice.class 6KB
CacheClearAdvice.class 6KB
LoggerAdvice.class 4KB
JSONUtils.class 4KB
User.class 4KB
RedisClusterController.class 4KB
RedisController.class 3KB
RegexUtil.class 3KB
CacheAbleAdvice.class 2KB
CacheClear$Type.class 1KB
CacheEdit$Type.class 1KB
Cache4J$Type.class 1KB
CacheAbleHandler.class 973B
CacheClear.class 815B
CacheEdit.class 810B
Cache4J.class 800B
foo.class 737B
RedisclusterApplication.class 734B
HelloB.class 668B
BubbleSort.class 661B
RedisclusterApplicationTests.class 652B
JSONUtils$1.class 618B
JSONUtils$2.class 603B
NULL.class 593B
HelloA.class 531B
LoggerManage.class 493B
.gitignore 268B
redis-cluster.iml 8KB
StringUtil.java 44KB
DateUtil.java 9KB
Cache4JAdvice.java 5KB
RegexUtil.java 5KB
CacheEditAdvice.java 4KB
CacheClearAdvice.java 4KB
LoggerAdvice.java 3KB
JSONUtils.java 3KB
RedisClusterController.java 2KB
RedisController.java 2KB
CacheClear.java 743B
Cache4J.java 740B
CacheEdit.java 731B
BubbleSort.java 589B
CacheAbleHandler.java 562B
HelloB.java 554B
User.java 367B
CacheAbleAdvice.java 363B
RedisclusterApplicationTests.java 351B
RedisclusterApplication.java 335B
LoggerManage.java 328B
NULL.java 222B
foo.java 192B
package-info.java 116B
package-info.java 95B
workspace.xml 42KB
uiDesigner.xml 9KB
pom.xml 3KB
Maven__org_springframework_boot_spring_boot_starter_data_redis_1_5_12_RELEASE.xml 800B
Maven__org_springframework_boot_spring_boot_test_autoconfigure_1_5_12_RELEASE.xml 800B
Maven__org_springframework_boot_spring_boot_starter_logging_1_5_12_RELEASE.xml 779B
Maven__org_springframework_boot_spring_boot_starter_tomcat_1_5_12_RELEASE.xml 772B
Maven__org_springframework_boot_spring_boot_autoconfigure_1_5_12_RELEASE.xml 765B
Maven__org_springframework_boot_spring_boot_starter_test_1_5_12_RELEASE.xml 758B
Maven__org_springframework_boot_spring_boot_starter_aop_1_5_12_RELEASE.xml 751B
Maven__org_springframework_boot_spring_boot_starter_web_1_5_12_RELEASE.xml 751B
Maven__org_springframework_data_spring_data_commons_1_13_11_RELEASE.xml 730B
Maven__org_springframework_boot_spring_boot_devtools_1_5_12_RELEASE.xml 730B
Maven__org_springframework_data_spring_data_keyvalue_1_2_11_RELEASE.xml 730B
Maven__org_springframework_spring_context_support_4_3_16_RELEASE.xml 724B
Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml 724B
Maven__org_springframework_boot_spring_boot_starter_1_5_12_RELEASE.xml 723B
Maven__org_springframework_data_spring_data_redis_1_8_11_RELEASE.xml 709B
Maven__org_springframework_boot_spring_boot_test_1_5_12_RELEASE.xml 702B
Maven__org_springframework_spring_expression_4_3_16_RELEASE.xml 689B
Maven__org_apache_tomcat_embed_tomcat_embed_websocket_8_5_29.xml 684B
Maven__org_springframework_spring_context_4_3_16_RELEASE.xml 668B
Maven__com_fasterxml_jackson_core_jackson_annotations_2_8_0.xml 668B
Maven__com_fasterxml_jackson_core_jackson_databind_2_8_11_1.xml 668B
Maven__org_springframework_boot_spring_boot_1_5_12_RELEASE.xml 667B
Maven__org_springframework_spring_webmvc_4_3_16_RELEASE.xml 661B
Maven__org_apache_tomcat_tomcat_annotations_api_8_5_29.xml 660B
Maven__org_hibernate_hibernate_validator_5_3_6_Final.xml 658B
Maven__org_springframework_spring_beans_4_3_16_RELEASE.xml 654B
Maven__org_apache_tomcat_embed_tomcat_embed_core_8_5_29.xml 649B
Maven__org_springframework_spring_core_4_3_16_RELEASE.xml 647B
Maven__org_springframework_spring_test_4_3_16_RELEASE.xml 647B
Maven__org_springframework_spring_aop_4_3_16_RELEASE.xml 640B
Maven__org_springframework_spring_web_4_3_16_RELEASE.xml 640B
Maven__org_springframework_spring_oxm_4_3_16_RELEASE.xml 640B
compiler.xml 638B
Maven__javax_validation_validation_api_1_1_0_Final.xml 635B
Maven__org_apache_tomcat_embed_tomcat_embed_el_8_5_29.xml 635B
Maven__org_springframework_spring_tx_4_3_16_RELEASE.xml 633B
Maven__org_jboss_logging_jboss_logging_3_3_2_Final.xml 632B
Maven__com_fasterxml_jackson_core_jackson_core_2_8_11.xml 626B
Maven__ch_qos_logback_logback_classic_1_1_11.xml 599B
Maven__org_apache_commons_commons_pool2_2_4_3.xml 594B
Maven__org_slf4j_log4j_over_slf4j_1_7_25.xml 586B
共 126 条
- 1
- 2
资源评论
- 「已注销」2018-10-26还行值得参考
tatawo123321
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功