`
tuhaitao
  • 浏览: 376090 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Srping Utils包的使用

阅读更多
    在写应用的时候经常设计到对List的操作问题,比如个从Dao里取得数据,返回一个List,当该list为空,或者size == 0的时候回去抛异常,或者做一些其它业务逻辑,我见过好多项目中都会在开始建立的时候写一大堆的Utils类,其中就包或对String,List等的操作,我觉得完全没有必要自己写这些了,spring util包已经能够满足我们的需求了.
    org.springframework.util

    CollectionUtils.java

    下边是我认为操作集合最常用不过的两个方法了,代码很简单清爽:
   
    //可以传入List 等实现了Collection接口的集合进去
    public static boolean isEmpty(Collection collection) {
        return (collection == null || collection.isEmpty());
    }

    //重载了isEmpty方法,可以传实现了Map接口的集合进去,比如:HashMap
    public static boolean isEmpty(Map map) {
        return (map == null || map.isEmpty());
    }
    

   
    StringUtils.java

    同样的,字符串的常用操作也是不可少的:

   
    //判断字符序列是否有长度
    public static boolean hasLength(CharSequence str) {
        return (str != null && str.length() > 0);
    }

    //判断字符串是否有长度,复用了上边的方法
    public static boolean hasLength(String str) {
        return hasLength((CharSequence) str);
    }
    

    这里的CharSequence是JDK里String所实现的一个接口:
    通过查看JDK6.0的源码可以看到:
   
    public final class String
    implements java.io.Serializable, Comparable<String>, CharSequence
    

    CharSequence 有什么样的方法呢:继续跟进去看:
   
    public interface CharSequence {

        //返回字符序列的长度
        int length();

        //返回字符序列中指定位置的字符
        char charAt(int index);

        //按照参数start和end返回指定位置的子 字符序列
        CharSequence subSequence(int start, int end);

        //这个不用说了吧
        public String toString();

    }
    

    判断了字符串是否有长度还不够,万一是一个长度为10的空格组成的字符串呢,在做一些应用开发的时候,这样的数据往往是没有意义的,Spring照样也有这样的方法,继续往下看:
    还是在StringUtils.java中:
   
    public static boolean hasText(CharSequence str) {
        //这里首先保证字符
        if (!hasLength(str)) {
            return false;
        }
        int strLen = str.length();
        for (int i = 0; i < strLen; i++) {
            if (!Character.isWhitespace(str.charAt(i))) {
                return true;
            }
        }
        return false;
    }

    //重载了上边的方法,参数换为String类型,复用上边方法
    public static boolean hasText(String str) {
        return hasText((CharSequence) str);
    }
    

    有时候处理数据又不希望在字符串中出现空格,跟上边方法相反的可以判断字符序列中是否有空格:
   
    //判断字符序列中是否有空格
    public static boolean containsWhitespace(CharSequence str) {
        if (!hasLength(str)) {
            return false;
        }
        int strLen = str.length();
        for (int i = 0; i < strLen; i++) {
            //这里的判断刚好跟上边那个方法相反
            if (Character.isWhitespace(str.charAt(i))) {
                return true;
            }
        }
        return false;
    }

    //同样的重载上边这个方法
    public static boolean containsWhitespace(String str) {
        return containsWhitespace((CharSequence) str);
    }
    

    还有类似好多的常用方法,其实都能用到,除此以为还有ObjectUtils、ClassUtils等等,有心去的朋友去看一下Spring2.5.6的源代码,没必要再自己重新写Utils包了,软件的目标是复用,已经有的轮子就没有必要再发明一次了,希望我的文章能帮助你,本人水平有限,如有不对欢迎大家拍砖。
分享到:
评论

相关推荐

    base64utils jar 包下载

    base64utils jar 项目中应用,亲测,希望能帮到您,加油 少年

    HttpClientUtils.java

    httpclient工具类包含get,post,put,delete请求

    Spring所有jar包

    里面提供了Spring的AOP,DAO,DATA,IOC,JSON,MVC,ORM,TASK,TEST包以及applicationContext.xml配置文件,适合Spring框架初学者及老鸟下载使用

    RedisUtils.java

    基于spring和redis的redisTemplate工具类,针对redisTemplate的一些封装,包含一些日常比较容易用到的一些通用方法。

    techaction-common-filter-utils.zip

    Spring+SpringMVC+DBUtils系统框架下的common包、filter包和utils包中的常用类,详情请见https://blog.csdn.net/Joyce_Ff/article/details/93377981

    struts spring hibernate 整合好的jar包

    struts spring hibernate 整合好的jar包 已经验证,解压后直接引入工程使用即可

    包含微信接口相关的jar,如公众号、开放平台、微信小程序接口等等

    qrcode-utils-1.1.jar weixin-graal-4.0.9.B.jar weixin-java-common-4.0.9.B.jar weixin-java-cp-4.0.9.B.jar weixin-java-miniapp-4.0.9.B.jar weixin-java-mp-4.0.9.B.jar weixin-java-open-4.0.9.B.jar weixin-...

    Spring-Boot-Reference.pdf

    •Spring Boot CLI: 使用CLI •核心特性: SpringApplication |外部配置|概要|日志 •Web应用:MVC |嵌入式容器 •处理数据:SQL | NO-SQL •消息传递:概述| JMS •测试:概述|引导应用| Utils •扩展:自动配置| @...

    code-memo:代码备忘录, 包含mybatis、spring、spring-boot、hbase、hive、guava、jdk等示例代码

    Code-memo 平时学习的开源框架的示例代码。包括mybatis、spring、spring-boot、hbase、hive、impala、guava、jdk等 包含的模块 spring-demo mybatis-demo ...google guaua 使用示例,hbase访问接口以及hbase操

    Spring-Framework 5.3.4 依赖JAR集合.zip

    Spring 5.3.4 build时 部分Jar包无法下载 以下为整理好的JAR包合集 velocity-1.6.2.jar commons-lang-2.4.jar aopalliance-1.0.jar annotations-1.3.2.jar plexus-utils-3.0.22.jar commons-lang3-3.4.jar joda-...

    maven+springmvc+spring+hibernate+freemarker

    maven管理项目+springmvc+spring+hibernate+freemarker 集成框架。其中注解格式清晰,hibernate进行了代码封装,对开发效率有了提高,对异常进行了封装。freemarker也有优化,参考common包下。对日期工具类有各种...

    搭建SSH框架的代码

    8.有全文检索工具类包含索引的创建、查询等,自动分页Bean,Excel读取/导出等功能、汉字转拼音,MD5加密,加密解密,图片转字符、字符转图片,IP检查,拦截器权限拦截,Struts2Utils类,Spring3Utils类,轻松搞定...

    xfire所有jar包

    stax-utils-snapshot-20040917.jar wsdl4j-1.5.2.jar wstx-asl-3.0.1.jar xfire-aegis-1.2.2.jar xfire-annotations-1.2.2.jar xfire-core-1.2.2.jar xfire-java5-1.2.2.jar xfire-jsr181-api-1.0-M1.jar xfire-...

    springboot-util:Spring Boot 项目工具类,框架集成记录

    springboot-study springboot 使用 SpringBoot + MyBatis 搭建的微信小...Spring Boot 结合 CORS 在服务端解决 AJAX 跨域问题的 demo。 1.使用 CorsConfiguration 配置 @Configuration public class CorsConfig { pr

    demo:Spring启动演示项目

    spring boot 项目demo,用于生成 archetype ...web 使用的是spring推荐的模板引擎 thymeleaf ,优点是前后端可以很好的分离,理念界面即原型,目前是thymeleaf是2版本,缺点:渲染性能不好,3版本性能

    guns-lite:基于spring boot脚手架项目,spring data jpa + Spring Boot2 + bootstrap完整的后台管理系统

    dev,开发分支,新功能都会在改分支上开发,不建议使用该分支,变量目录说明guns-admin一个成熟的后台管理系统,完全一样了后台管理系统的基本功能guns-utils工具包枪道道层枪支实体层枪支服务层演示技术选型核心...

    xfirejar开发全部包

    xfirejar开发全部包 activation.jar commons-logging.jar jdom-1.0.jar spring.jar spring-mock.jar stax-api-1.0.1.jar stax-utils-snaPShot-20040917.jar wsdl4j-1.5.2.jar wstx-asl-3.0.1.jar xfire-aegis-1.2.2....

    security-spring-boot-starter:权限框架和util工具包类

    在yml文件中配置server: port: 8182spring: datasource: url: jdbc:mysql://localhost:3306/test?serverTimezone=Hongkong&useSSL=false&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true ...

    开发用jar包合集

    jarjar-plexus-utils-2.0.6.jar jarjar-wagon-http-2.4.jar jarjar-wagon-http-shared4-2.4.jar jarjar-wagon-provider-api-2.4.jar jatl-0.2.2.jar javax.inject-1.jar jaxen-1.1.jar jcifs-1.3.17.jar ...

    db-mapping-1.0.0

    该jar包可以根据数据库表,自动生成action(struts2)/controller(springmvc)、model、service、dao各个层的代码。 实用框架:struts2/springmvc + mybatis + spring 可根据项目需要选择: 框架类型...

Global site tag (gtag.js) - Google Analytics