1,spring 类库常用工具
package model;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.Lists;
import com.zhuishubao.core.util.comm.Base64;
import org.apache.commons.codec.cli.Digest;
import org.springframework.util.*;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class SpringCommUtilsTest {
public static void main(String[] args) {
// testSpringSerialize();
// reflectionUtilsDemo();
// testMD5Utils();
// testCollectionUtils();
//
User user = null;
Assert.notNull(user, "对象是null");
//
//
// testClassUtils();
// testSpringBase64();
// testSpringIdGenerator();
}
private static void testSpringIdGenerator() {
/**
* 随机的UUID
*/
IdGenerator idGenerator = new JdkIdGenerator();
System.out.println(idGenerator.generateId());
idGenerator = new SimpleIdGenerator();
System.out.println(idGenerator.generateId());
/**
* 更为高效和安全
*/
idGenerator = new AlternativeJdkIdGenerator();
System.out.println(idGenerator.generateId());
}
private static void testCollectionUtils() {
ArrayList<Object> list = Lists.newArrayList();
System.out.println(CollectionUtils.isEmpty(list));
List list1 = CollectionUtils.arrayToList(new int[]{1, 2, 3, 4, 6});
System.out.println(JSON.toJSONString(list1));
boolean contains = CollectionUtils.contains(list1.iterator(), 1);
System.out.println(contains);
boolean contains1 = CollectionUtils.contains(list1.iterator(), 5);
System.out.println(contains1);
Integer[] array = (Integer[]) list1.toArray();
Arrays.stream(array).forEach(a-> System.out.println(a));
list1.stream().forEach(a-> System.out.println(a));
}
private static void testClassUtils() {
String s = ClassUtils.classNamesToString(User.class);//获取类名全路径
System.out.println(s);
String a2 = ClassUtils.classPackageAsResourcePath(User.class);//获取包路径
System.out.println(a2);
}
private static void testSpringBase64() {
byte[] encode = Base64Utils.encode("hello world".getBytes());
System.out.println(new String(encode));
byte[] decode = Base64Utils.decode(encode);
System.out.println(new String(decode));
}
private static void testMD5Utils() {
String ret = DigestUtils.md5DigestAsHex("hello world".getBytes());
System.out.println(ret);
String ret2 = org.apache.commons.codec.digest.DigestUtils.md5Hex("hello world".getBytes());
System.out.println(ret2);
System.out.println(ret.equals(ret2));
}
private static void reflectionUtilsDemo() {
Method[] methods = ReflectionUtils.getAllDeclaredMethods(User.class);
for (Method m : methods){
System.out.println(m.getAnnotatedReturnType().getType());
System.out.println(m.getModifiers());
System.out.println("======>"+m.getName());
System.out.println(m.getExceptionTypes());
}
}
private static void testSpringSerialize() {
byte[] serializeCode = SerializationUtils.serialize(new User());
// System.out.println(ret);
Object obj = SerializationUtils.deserialize(serializeCode);
if(obj instanceof User){
User u = (User) obj;
System.out.println(u.say("zs"));
}
}
}
2,apache 类库常用工具方法
package model;
import com.google.common.collect.Lists;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.NameValuePair;
import org.apache.http.client.utils.URLEncodedUtils;
import org.springframework.beans.BeanUtils;
import java.beans.PropertyDescriptor;
import java.io.*;
import java.lang.reflect.InvocationTargetException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.nio.charset.Charset;
import java.time.LocalDateTime;
import java.util.*;
public class ApacheCommUtilsTest {
public static void main(String[] args) {
// bufferReaderFile();
// tryResClose();
// testStringUtil();
// testArrayUtils();
// testStringEscapeUtils();
// testUrlEncoderUtils();
// testSpringBeanUtils();
// testCollectionUtils();
// testMapBeanConverter();
}
private static void testMapBeanConverter() {
Map<String, Object> map = new HashMap<>();
map.put("id","1000");
map.put("name","zs");
User user = new User();
try {
org.apache.commons.beanutils.BeanUtils.populate(user, map);
System.out.println(user);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
try {
Map<String, String> map1 = org.apache.commons.beanutils.BeanUtils.describe(user);
System.out.println(map1);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
}
private static void testCollectionUtils() {
List<Integer> list = Lists.newArrayList(1,2,3,4,5,6,7,8,9,10);
CollectionUtils.filter(list, i->(int)i>5);
list.stream().forEach(System.out::println);
Collection c = CollectionUtils.select(list, i -> (int) i > 5);
c.stream().forEach(System.out::println);
}
private static void testSpringBeanUtils() {
Addr addr = Addr.builder().code(1).name("wuhan").build();
User user = new User(1, "zs", 22, addr);
UserDTO userDTO = new UserDTO();
BeanUtils.copyProperties(user, userDTO);
System.out.println(userDTO);
System.out.println(LocalDateTime.now().toString());
PropertyDescriptor propertyDescriptor = BeanUtils.getPropertyDescriptor(User.class, "id");
System.out.println(propertyDescriptor.getWriteMethod());
System.out.println(propertyDescriptor.getReadMethod());
//拷贝,排除一些字段
UserDTO userDTO2 = new UserDTO();
BeanUtils.copyProperties(user, userDTO2, "id", "name");
System.out.println(userDTO2);
}
private static void testUrlEncoderUtils() {
String url = "http://www.baidu.com?name=zs&city=sz";
List<NameValuePair> list = URLEncodedUtils.parse(url, Charset.defaultCharset());
list.stream().forEach(pair -> {
System.out.println(pair.getName());
System.out.println(pair.getValue());
});
try {
String encode = URLEncoder.encode(url, "UTF-8");
System.out.println(encode);
String decode = URLDecoder.decode(encode, "UTF-8");
System.out.println(decode);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
private static void testStringEscapeUtils() {
//转义字符串工具类
String sql = "1' or '1'='1";
String ret = StringEscapeUtils.escapeSql(sql);
System.out.println(ret);
//转成unicode 编码
System.out.println(StringEscapeUtils.escapeJava("左良"));
//转义html
String html = "<font>zuo 亮 liang </font>";
System.out.println(StringEscapeUtils.escapeHtml(html));
//反转义html
String html2 = "<font>zuo 亮 liang </font>";
System.out.println(StringEscapeUtils.unescapeHtml(html2));
//转义XML
String xml = "<name>张三</name>";
String ret2 = StringEscapeUtils.escapeXml(xml);
System.out.println(ret2);
//反转义XML
System.out.println(StringEscapeUtils.unescapeXml(ret2));
}
private static void testArrayUtils() {
String[] strArr = {"aa", "bb", "cc"};
String[] strArr2 = {"aa", "bb", "cc"};
boolean isExist = ArrayUtils.contains(strArr, "aa");
System.out.println(isExist);
String[] strArr3 = ArrayUtils.addAll(strArr, "dd", "ee", "dd");
Arrays.stream(strArr3).forEach(s -> System.out.println(s));
System.out.println(ArrayUtils.isEmpty(strArr));
String[] subarray = ArrayUtils.subarray(strArr, 1, 3);//[1,3)
Arrays.stream(subarray).forEach(s -> System.out.println(s));
int idx = ArrayUtils.indexOf(strArr, "cc");
System.out.println(idx);
//比较数组是否相等
System.out.println(ArrayUtils.isEquals(strArr, strArr2));//replace Objects.deepEquals(Object, Object)
System.out.println(Objects.deepEquals(strArr, strArr2));
//将基础类型的数组转化为Object[];
int[] intArr = {1, 2, 3, 4};
Integer[] objArr = ArrayUtils.toObject(intArr);
Arrays.stream(objArr).forEach(i -> System.out.println(i));
}
private static void testStringUtil() {
String str = "hello world";
System.out.println(StringUtils.isEmpty(str));
str = " ";
System.out.println(StringUtils.isBlank(str));//trim 后
String str3 = "hello world";
String str2 = "hello world";
boolean ret = StringUtils.equals(str3, str2);
System.out.println(ret);
System.out.println(StringUtils.equals("null", "null"));
String[] strArr = {"a", "b", "c"};
System.out.println(StringUtils.join(strArr, "|"));
String[] ss = StringUtils.split(str3, " ");
Arrays.stream(ss).forEach(s -> System.out.println(s));
System.out.println(StringUtils.EMPTY);
String aa = " ";
System.out.println(StringUtils.trimToNull(aa));
System.out.println(StringUtils.replace(str3, "o", "O", 1));
}
private static void tryResClose() {
File file = new File("D://iap_errorlog.log");
int count;
try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
String line = null;
count = 0;
while ((line = reader.readLine()) != null) {
System.out.println(line);
count++;
}
System.out.println(count);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private static void bufferReaderFile(File file) {
try {
BufferedReader reader = new BufferedReader(new FileReader(file));
String line = null;
int count = 0;
while ((line = reader.readLine()) != null) {
System.out.println(line);
count++;
}
System.out.println(count);
} catch (Exception e) {
e.printStackTrace();
} finally {
IOUtils.closeQuietly();//Please use the try-with-resources statement or handle
}
}
}