spring 常用工具包

本小妞迷上赌 提交于 2020-01-28 08:33:00

spring 常用工具包

具体可以参考spring的文档: http://tool.oschina.net/apidocs/apidoc?api=Spring-3.1.1

Object,String,Number相关

public abstract class StringUtils extends Object

  • 去掉最后一个字符:
String lang ="java,c,html,";

lang = StringUtils.trimTrailingCharacter(lang,',');

//打印出java,c,html

同理,去掉第一个字符可以trimLeadingCharacter方法。
其余方法可以看详细API。

public abstract class NumberUtils extends Object

  • 类型转换
Integer num =NumberUtils.parseNumber("12", Integer.class);

  • 对象拷贝
org.springframework.beans.BeanUtils
//拷贝属性:
BeanUtils.copyProperties(source, target, ignoreProperties);

Resource,File相关

public abstract class FileCopyUtils extends Object

public abstract class ResourceUtils extends Object

public abstract class PropertiesLoaderUtils

  • 以Ant风格路径获取Resource,这里支持ftp,http,classpath,file等地址前缀
ResourcePatternResolver patternResolver = new PathMatchingResourcePatternResolver();
Resource[] resource = patternResolver.getResources("classpath:*.properties");

  • 从一个文件Copy到另外一个文件:
FileCopyUtils.copy(new File("p0"), new File("p1"));

  • 获取文件,资源路径可以是 classpath:, file:, URL,
File file = ResourceUtils.getFile("classpath:jdbc.properties");

  • 获取properties配置文件:
Properties properties = PropertiesLoaderUtils.loadAllProperties("http.properties")

  • 读取文件
URL url = ResourceUtils.getURL("classpath:yn-http.properties");
UrlResource resource = new UrlResource(url);
//其中EncodedResource可以指定具体的编码格式
EncodedResource enResource = new EncodedResource(resource,"utf-8");
String result = FileCopyUtils.copyToString(enResource.getReader());
System.out.println(result);

常用的Resource实现类有:
ClassPathResource,FileSystemResource,InputStreamResource,UrlResource,
具体可在org.springframework.core.io包下查看

Assert

在Spring的源代码里面,经常看到这样的代码:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WZKE7g8B-1579394819797)(https://static.oschina.net/uploads/img/201604/07141521_g9Me.png “在这里输入图片标题”)]

我们发现在Assert类中的具体实现:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VNdibLYZ-1579394819797)(https://static.oschina.net/uploads/img/201604/07141543_F6B7.png “在这里输入图片标题”)]

对于一些异常的检验,可以参考这个设计
例如,在这里,我们还可以自定义异常,最后统一捕获。

public static void checkBussiness(Object object, String message)
   {
     if (checkSomething()) {//业务逻辑校验
      throw new MyException(message);
    }
 }

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!