StringUtils:
1 | <dependency> |
CollectionUtils:
1 | <dependency> |
1、private static String LINE_SEPETOR = System.getProperty("line.separator");
得到当前系统的换行符,防止因为系统不同造成不同结果。
guava
2、Preconditions 判断参数是否正确/是否为null
3、Strings.isNullOrEmpty
3、Splitter.on(LINE_SEPETOR).trimResults().omitEmptyStrings().withKeyValueSeparator(“=”).split(document);
字符串按照“LINE_SEPETOR”分割后,去除每个分割结果前后的空格,去除空的分割结果,再把每个分割结果用“=”分割成map。
(想象场景,想把字符串url的参数解析出来成map)
4、Joiner.on(“&”).withKeyValueSeparator(“=”).join(map)
把map的key和value之间用=连接,之后用&把所有的key=value对儿连接起来。(与上面方法相反,把一个map转成一个url的形式。)
5、Maps.difference
比较两个map,返回结果通过entriesOnlyOnLeft可以得到第一个map有第二个map没有的结果;entriesOnlyOnRight得到第二个map有,第一个map没有的结果;entriesDiffering得到key一样value不一样的结果。
6、ImmutableMap、ImmutableSet不可变。
集合过滤
1、过滤
1 | public class PostPredication implements Predicate<RequestLog>{ |
对集合里的每条数据执行apply方法,符和条件的返回true。
2、使用
1 | List<RequestLog> logs = FileUtils.loadText(ACCESS_LOG, new OneLineProcess()); |
把集合logs符和条件的返回。
还可以不实现Predicate方法,在filter的参数里直接放一个匿名类。
对map过滤
map可以通过key/value/entry等过滤,下面的例子是对value过滤。使用时用的是匿名类的方法,还可以使用上面的方法新建一个类实现Predicate类。
1 | private Map<City, Province> separateResult = new HashMap<City, Province>(); |
读/处理文件,更简洁
1、对文件每行内容处理、实现LineProcessor。
1 | public class OneLineProcess implements LineProcessor<List<RequestLog>> { |
2.使用
1 | File textFile = new File(filePath); |
第二行代码的返回就是调用第一步中getResult方法的返回结果。
spring拦截器
1、在mvc配置:
1 | <mvc:interceptors> |
标签mvc:mapping
的参数path
的值是要拦截的请求
2、代码实现loginInterceptor
1 | @Component |
spring切片
1、spring配置
1 | <aop:aspectj-autoproxy proxy-target-class="true"/> |
2、切片类
1 | @Aspect |
com.fresh.dao.*.*(..) 是包.类.方法(参数),上面的例子是统计dao层方法的执行时间。