工具类用的好,下班下的早(下)

beanutils Bean 操作

beanutils 是通过反射机制对 JavaBean 进行操作的。比如对 Bean 进行复制、map 转对象、对象转 Map。

maven 依赖工具类用的好,下班下的早(下)工具类用的好,下班下的早(下)

Guava

Google 开源的一个基于 Java 扩展项目,包含了一些基本工具、集合扩展、缓存、并发工具包、字符串处理等。

maven 依赖

工具类用的好,下班下的早(下)

Map<String, List> 类型

在java 代码中经常会遇到需要写 Map<String, List> map 的局部变量的时候。有时候业务情况还会更复杂一点。

工具类用的好,下班下的早(下)

value 不能重复的 Map

在 Map 中 value 的值是可以重复的,Guava 可以创建一个 value 不可重复的 Map,并且 Map 和 value 可以对调。

工具类用的好,下班下的早(下)

缓存

写业务的时候肯定会使用缓存,当不想用第三方作为缓存的时候,Map 又不够强大,就可以使用 Guava 的缓存。

使用 CacheBuilder.newBuilder().build() 构建缓存,maximumSize() 方法可以设置缓存的存储数量

工具类用的好,下班下的早(下)

过期时间

expireAfterAccess() 可以设置缓存的过期时间。

工具类用的好,下班下的早(下)

加载数据

当需要访问 key1 时,如果 key1 此时没有被缓存,就会从回调函数中加载 key1 的值。值得一提的是当多个线程同时访问的时候只有一个线程会执行回调函数。

工具类用的好,下班下的早(下)

Guava 有许许多多的工具类,这里只列出了小小的部分,可以在官网例子中查看到各种用法。

总结

通过 Apache Commons 和 Guava 两个第三方的开源工具库,可以让减少循环、ifelse 的代码。写出的代码更有健壮性并且可以在新人面前装一波。

上一篇:想知道如何正确地保证表单提交的幂等性吗?(三)


下一篇:难缠的跨域问题,终于弄清楚了(下)