`
tuhaitao
  • 浏览: 378811 次
  • 性别: 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的功能了。 总的来说,`base64utils.jar`是Java开发中的一个实用工具,它简化了Base64编码和解码任务,提高了代码的可读性和效率。无论你是初学者...

    spring常用包

    以上只是Spring框架部分常用包的简要介绍,实际使用中,开发者可以根据需求选择相应的模块进行集成,构建出满足业务需求的高效、稳定的Java应用。Spring框架的强大之处在于其模块化设计,允许开发者根据项目规模和...

    ExcelUtils按模板导出所需的JAR包

    使用"ExcelUtils按模板导出所需的JAR包",你需要将这个压缩包解压,得到包含ExcelUtils库的JAR文件。将这个JAR添加到你的项目类路径中,就可以在代码中引入并使用ExcelUtils的相关方法了。在编写代码时,参照工具类...

    spring必要jar包

    5. **spring-core-4.2.6.RELEASE.jar**:核心工具类,包括基本的IoC和AOP支持,如ClassUtils、ResourceUtils等。 6. **spring-expression-4.2.6.RELEASE.jar**:Spring表达式语言(SpEL),用于在运行时查询和操作...

    spring jar包

    2. **spring-core.jar**:核心工具类库,提供了资源加载、反射和类型转换等基础功能,例如`org.springframework.core`包下的Resource接口和ClassUtils类。 3. **spring-context.jar**:包含了应用上下文相关的类,...

    Spring所有jar包

    11. **spring-tx.jar**:事务管理模块,支持编程式和声明式事务管理,可以与JDBC、Hibernate、JPA等数据访问技术配合使用。 12. **spring-orm.jar**:提供了与ORM框架(如Hibernate、JPA、iBatis)集成的支持。 13...

    Spring必备jar包

    本篇文章将深入探讨Spring框架的核心组件以及必备的jar包,帮助你更好地理解和使用Spring。 首先,Spring框架的核心组件包括IoC(Inversion of Control,控制反转)容器、AOP(Aspect Oriented Programming,面向切...

    spring所需的jar包

    这些jar包的使用通常根据项目需求进行选择,例如,如果只需要使用Spring的DI功能,那么`spring-core`和`spring-beans`可能就足够了。但如果涉及Web开发,`spring-web`和`spring-webmvc`就是必需的。 接下来,我们...

    Spring框架相关jar包

    6. **commons-logging-1.2.jar**: 这是Apache Commons Logging库,它是Spring框架的日志抽象层,允许Spring使用多种日志框架,如Log4j、Java内置的日志系统等,而无需硬编码具体的日志实现。 这些jar包共同构成了...

    图书商城utils包及数据库配置类

    在开发一个图书商城系统时,`utils`包和数据库配置类是至关重要的组成部分。`utils`包通常包含各种通用工具类,提供复用性高、功能广泛的辅助方法,以简化代码逻辑,提高代码效率。而数据库配置类则关乎整个系统的...

    Spring框架所需基本jar包

    在使用Spring进行开发时,需要依赖一系列的jar包来支持其核心功能和服务。下面将详细阐述这些jar包的作用及其在Spring框架中的重要性。 1. **Spring Core Container**: - `spring-core.jar`: 核心模块,提供了IoC...

    Spring中使用classpath加载配置文件浅析

    如果当前线程的ClassLoader无法获取到资源,Spring会转而使用加载org.springframework.util.ClassUtils类的ClassLoader。 在Spring加载配置文件时,我们需要注意几个关键点: 1. **不使用通配符**:当配置文件路径...

    spring-core-3.2.18.RELEASE-sources.jar (spring 3.2.18源码source)

    spring-core-3.2.18.RELEASE-sources.jar (spring 3.2.18源码source),导入到Eclipse里面进行查看。

    SpringAOP依赖包

    `org.springframework.core`包下的`ClassUtils`和`MethodInvokingFactoryBean`等类在AOP的动态代理过程中起到关键作用。 4. **spring-context.jar**:提供了更高级的应用上下文功能,如事件发布、国际化、AOP代理的...

    spring3.0.6官方jar包

    6. `org.springframework.core-3.0.6.RELEASE.jar`: 这是Spring框架的基础模块,包含了一些核心的类和接口,如ClassUtils、MethodInvokingFactoryBean等,它们为其他模块提供基本服务。 7. `org.springframework....

    HttpClientUtils.java

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

    redis utils 工具类

    在实际项目中,为提高性能和减少资源消耗,我们会使用连接池管理Redis连接,例如使用`LettuceConnectionFactory`或`JedisConnectionFactory`(Spring Data Redis中的实现)。连接池提供了一种有效地重复使用连接的...

    javautils一些工具类

    这些工具类通常被封装在某个库或框架中,比如Apache Commons Lang、Google Guava或者是Spring Framework中的org.springframework.util包。在这个"javautils"压缩包中,我们可以预见到包含了一些自定义的Java工具类,...

    初入spring的几个jar包

    6. commons-logging-1.2.jar:这是一个外部的日志库,Spring框架使用它来实现日志记录。Apache Commons Logging是一个轻量级的日志抽象层,它允许应用程序在不改变代码的情况下更换底层日志实现。 总的来说,这些...

Global site tag (gtag.js) - Google Analytics