Utils:常用工具类(io,file,bean,String,Array)

org.apache.commons

io.IOUtils

  1. closeQuietly 关闭一个IO流、socket、或者selector且不抛出异常。通常放在finally块。
  2. toString 转换IO流、 Uri、 byte[]为String。
  3. copy IO流数据复制,从输入流写到输出流中,最大支持2GB。
  4. toByteArray 从输入流、URI获取byte[]。
  5. write 把字节. 字符等写入输出流。
  6. toInputStream 把字符转换为输入流。
  7. readLines 从输入流中读取多行数据,返回List
  8. copyLarge 同copy,支持2GB以上数据的复制。
  9. lineIterator 从输入流返回一个迭代器,根据参数要求读取的数据量,全部读取,如果数据不够,则失败。

io.FileUtils

  1. deleteDirectory 删除文件夹。
  2. readFileToString 以字符形式读取文件内容。
  3. deleteQueitly 删除文件或文件夹且不会抛出异常。
  4. copyFile 复制文件。
  5. writeStringToFile 把字符写到目标文件,如果文件不存在,则创建。
  6. forceMkdir 强制创建文件夹,如果该文件夹父级目录不存在,则创建父级。
  7. write 把字符写到指定文件中。
  8. listFiles 列举某个目录下的文件(根据过滤器)。
  9. copyDirectory 复制文件夹。
  10. forceDelete 强制删除文件

lang.StringUtils

  1. isBlank 字符串是否为空 (trim后判断)。
  2. isEmpty 字符串是否为空 (不trim并判断)
  3. equals 字符串是否相等
  4. join 合并数组为单一字符串,可传分隔符
  5. split 分割字符串
  6. EMPTY 空字符串
  7. trimToNull trim后为空字符串则转换为null
  8. replace 替换字符串

lang3.StringUtils

  1. isBlank 字符串是否为空 (trim后判断)
  2. isEmpty 字符串是否为空 (不trim并判断)
  3. equals 字符串是否相等
  4. join 合并数组为单一字符串,可传分隔符
  5. split 分割字符串
  6. EMPTY 空字符串
  7. replace 替换字符串
  8. capitalize 首字符大写

io.FilenameUtils

  1. getExtension 返回文件后缀名
  2. getBaseName 返回文件名,不包含后缀名
  3. getName 返回文件全名
  4. concat 按命令行风格组合文件路径(详见方法注释)
  5. removeExtension 删除后缀名
  6. normalize 使路径正常化
  7. wildcardMatch 匹配通配符
  8. seperatorToUnix 路径分隔符改成unix系统格式的,即/getFullPath 获取文件路径,不包括文件名
  9. isExtension 检查文件后缀名是不是传入参数(List)中的一个

lang.ArrayUtils

  1. contains 是否包含某字符串
  2. addAll 添加所有
  3. clone 克隆一个数组
  4. isEmpty 是否空数组
  5. add 向数组添加元素
  6. subarray 截取数组
  7. indexOf 查找下标
  8. isEquals 比较数组是否相等
  9. toObject 基础类型数据数组转换为对应的Object数组

lang3.ArrayUtils

  1. contains 是否包含某字符串
  2. addAll 添加所有
  3. clone 克隆一个数组
  4. isEmpty 是否空数组
  5. add 向数组添加元素
  6. subarray 截取数组
  7. indexOf 查找下标
  8. isEquals 比较数组是否相等
  9. toObject 基础类型数据数组转换为对应的Object数组

lang.StringEscapeUtils

支持编码转换
escapeXml unEscapeXml。
此外,还支持html. java. JavaScript. sql. csv等

lang3.StringEscapeUtils

支持编码转换
escapeJson unEscapeJson。
此外,还支持html. java. JavaScript. sql. csv. xml等

codec.digest.DigestUtils

  1. md5Hex MD5加密,返回32位
  2. sha1Hex SHA-1加密
  3. sha256Hex SHA-256加密
  4. sha512Hex SHA-512加密
  5. md5 MD5加密,返回16位

collections.CollectionUtils

  1. isEmpty 是否为空
  2. select 根据条件筛选集合元素
  3. transform 根据指定方法处理集合元素,类似List的map()。
  4. filter 过滤元素,雷瑟List的filter()
  5. find 基本和select一样
  6. collect 和transform 差不多一样,但是返回新数组
  7. forAllDo 调用每个元素的指定方法。
  8. isEqualCollection 判断两个集合是否一致

beanutils.PropertyUtils

  1. getProperty 获取对象属性值
  2. setProperty 设置对象属性值
  3. getPropertyDiscriptor 获取属性描述器
  4. isReadable 检查属性是否可访问
  5. copyProperties 复制属性值,从一个对象到另一个对象
  6. getPropertyDiscriptors 获取所有属性描述器
  7. isWriteable 检查属性是否可写
  8. getPropertyType 获取对象属性类型

beanutils.BeanUtils

  1. copyPeoperties 复制属性值,从一个对象到另一个对象
  2. getProperty 获取对象属性值
  3. setProperty 设置对象属性值
  4. populate 根据Map给属性复制
  5. copyPeoperty 复制单个值,从一个对象到另一个对象。
  6. cloneBean 克隆

org.springframework

util.StringUtils

  1. hasText 检查字符串中是否包含文本
  2. hasLength 检测字符串是否长度大于0
  3. isEmpty 检测字符串是否为空(若传入为对象,则判断对象是否为null)
  4. commaDelimitedStringToArray 逗号分隔的String转换为数组
  5. collectionToDelimitedString 把集合转为CSV格式字符串
  6. replace 替换字符串
  7. delimitedListToStringArray 相当于split
  8. uncapitalize 首字母小写
  9. collectionToDelimitedCommaString 把集合转为CSV格式字符串
  10. tokenizeToStringArray 和split基本一样,但能自动去掉空白的单词

org.apache.http

util.EntityUtils

  1. toString 把Entity转换为字符串
  2. consume 确保Entity中的内容全部被消费。可以看到源码里又一次消费了Entity的内容,假如用户没有消费,那调用Entity时候将会把它消费掉。
  3. toByteArray 把Entity转换为字节流
  4. consumeQuietly 和consume一样,但不抛异常
  5. getContentCharset 获取内容的编码

client.utils.URLEncodedUtils

  1. format 格式化参数,返回一个HTTP POST或者HTTP PUT可用 application/x-www-form-urlencoded字符串
  2. parse 把String或者URI等转换为List

Docker系列(一):Linux 环境下安装 Docker

Docker 的构想是要实现Build,ship and Run Any App, Anywhere,即通过对应用的封装(Packaging)、分发(Distribution),部署(Deployment),运行(Runtime)生命周期进行管理,达到应用组件 一次封装,到处运行 的目的。

这里的应用组件,可以是一个Web应用,一个编译环境,也可以是一套数据库平台服务,甚至是一个操作系统或集群。   

阅读更多

Spring(十一):Spring Bean 是线程安全的吗?

Spring 中的默认为所有申明为 Bean 的对象创建一个实例存放到IoC容器进行管理的,这些Bean对象对于多线程来说是共享的,所以严格来说 Spring Bean 是非线程安全的。Spring 本身就没有对 bean 的多线程安全问题做出任何保证与措施。   

阅读更多

Spring MVC SSE-服务端推送技术

  Web 项目中,浏览器与服务器是通过请求响应来实现功能功能交互的,当服务端出现新的信息需要让前端知道时,就需要用到服务器推送技术。

  服务端推送技术有基于SSE(Server Send Event 服务端发送事件)的服务器端推送,该方式需要浏览器支持,而目前主流浏览器最近版本基本都支持;基于Servlet 3.0+的异步方法特性;WebSocket双向通信技术。

阅读更多

Spring MVC 注解之 @ControllerAdvice 实现全局异常处理

通常会在 @Controller 注解作用的类的方法上使用@ExceptionHandler,@ModelAttribute,@InitBinder来处理异常或初始化绑定,这三个注解对所用使用了 @RequestMapping 注解的控制器内的方法有效。

如果希望此类方法在全局范围内(跨控制器)应用,则可以在带有 @ControllerAdvice@RestControllerAdvice 注解的类中声明它们这三个注解。

@ControllerAdvice用于声明一个 控制器 建言,作用在类上,可以将控制器的全局配置统一放置在该注解作用的类里,结合在方法上使用 @ExceptionHandler 注解,就能实现全局的异常控制。

阅读更多