`
wwm4851186
  • 浏览: 8505 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

spring 中的 Assert

    博客分类:
  • Java
阅读更多
阅读 Spring 源码,您会发现 Spring 采用一个 org.springframework.util.Assert 通用类完成这一任务。

Assert 译为中文为“断言”,使用过 JUnit 的读者都熟知这个概念,它断定某一个实际的运行值和预期想一样,否则就抛出异常。Spring 对方法入参的检测借用了这个概念,其提供的 Assert 类拥有众多按规则对方法入参进行断言的方法,可以满足大部分方法入参检测的要求。这些断言方法在入参不满足要求时就会抛出 IllegalArgumentException。下面,我们来认识一下 Assert 类中的常用断言方法:

断言方法 说明
1. notNull(Object object) 
当 object 不为 null 时抛出异常,notNull(Object object, String message) 方法允许您通过 message 定制异常信息。和 notNull() 方法断言规则相反的方法是 isNull(Object object)/isNull(Object object, String message),它要求入参一定是 null;

2. isTrue(boolean expression) / isTrue(boolean expression, String message) 
当 expression 不为 true 抛出异常;

3. notEmpty(Collection collection) / notEmpty(Collection collection, String message) 
当集合未包含元素时抛出异常。
notEmpty(Map map) / notEmpty(Map map, String message) 和 notEmpty(Object[] array, String message) / notEmpty(Object[] array, String message) 分别对 Map 和 Object[] 类型的入参进行判断;

4. hasLength(String text) / hasLength(String text, String message)  当 text 为 null 或长度为 0 时抛出异常;

5. hasText(String text) / hasText(String text, String message)  text 不能为 null 且必须至少包含一个非空格的字符,否则抛出异常;

6. isInstanceOf(Class clazz, Object obj) / isInstanceOf(Class type, Object obj, String message)  如果 obj 不能被正确造型为 clazz 指定的类将抛出异常;
7. isAssignable(Class superType, Class subType) / isAssignable(Class superType, Class subType, String message)  subType 必须可以按类型匹配于 superType,否则将抛出异常;
分享到:
评论

相关推荐

    业务异常提示处理 springboot+Assert(自定义断言)

    使用springboot框架快速搭建,封装自定义断言做业务校验,公共异常处理打印日志, 更简单的业务判断处理

    spring源代码

    import junit.framework.Assert; import org.jboss.vfs.VFS; import org.jboss.vfs.VirtualFile; import org.jboss.vfs.spi.RealFileSystem; import org.junit.Test; import org.springframework.core.io.Resource;...

    SPRING API 2.0.CHM

    Assert AssertThrows AttributeAccessor AttributeAccessorSupport Attributes AttributesJmxAttributeSource AttributesTransactionAttributeSource AutodetectCapableMBeanInfoAssembler ...

    resthub-spring-stack:RESThub Spring堆栈

    基于Spring 3.2,Jackson 2,LogBack,TestNG,Fest Assert 2.x和Mockito的RESThub Spring堆栈 在查看文档,教程和示例 Javadoc可用。 在Travis CI上的构建状态:

    spring-slices-of-test:测试片示例

    在Spring Boot应用程序中,自动配置会产生大型的整体应用程序上下文。 测试切片使我们可以根据逻辑层对应用程序上下文进行细分。 例如, 切片仅包含与Web层相关的组件,例如@Controller注释的组件。 基本测试 作为...

    Spring Boot + validation + AOP 请求参数校验

    Spring Boot + validation + AOP 请求参数校验 一、validation 校验注解 通用 @Null 被注释的属性必须为 null @NotNull被注释的属性必须不为 null @AssertTrue 被注释的属性必须为 true @AssertFalse 被注释的属性...

    sludge-dryer:从Spring 4.0.x的CacheAspectSupport#generateKey()实现中清除污泥

    污泥干燥机-从Spring 4.0.x的CacheAspectSupport#generateKey()实现中清除污泥在4.0.x版本中,Spring的CacheAspectSupport#generateKey()包含一个Assert.notNull()语句,该语句通过字符串串联创建大量垃圾。...

    定时任务cron 解析为中文.docx

    8 import org.springframework.util.Assert; 9 10 import java.text.ParseException; 11 import java.util.Date; 12 import java.util.List; 13 14 /** 15 * *******************************************...

    OA项目SSH整合框架

    2,在struts-config.xml中配置controller(Spring Reference 15.4.1.1. DelegatingRequestProcessor) <!-- 集成Spring --> <set-property property="processorClass" value="org.springframework.web....

    SpringDataJPA findById与getOne的区别

    getOne得到的是对应得实体类对象,如果需要在单元测试中使用此方法,要加上事务支持注解,即@Transactional,才可以正常使用 从源码分析 public Optional findById(ID id) { Assert.notNull(id, "The given id ...

    java面试宝典

    105、spring工作机制及为什么要用? 24 106、HttpSession session = request.getSession() 24 107、getParameter与 getAttribute的区别? 24 108、以下哪一个不是赋值符号? 25 109、以下哪个不是Collection的子接口?...

    千方百计笔试题大全

    105、spring工作机制及为什么要用? 24 106、HttpSession session = request.getSession() 24 107、getParameter与 getAttribute的区别? 24 108、以下哪一个不是赋值符号? 25 109、以下哪个不是Collection的子接口?...

    java面试题

    73.6. 项目中用到的Spring中的切面编程最多的地方:声明式事务管理。 77 73.7. spring的事务如何配置 77 73.8. transaction有那几种实现(事务处理)(Spring) 79 73.9. Spring IoC 79 73.10. Spring AOP面向方面编程 ...

    cloudtest-1.0.4-b201302231138PM Release

    About CloudTest License ... Spring supported  Transaction management supported  Plugin architecture designed, which is extensible and customized as needed Obtaining Release Package ...

    CloudTest Getting Started Guide.pdf

     Spring supported  Transaction management supported  Plugin architecture designed, which is extensible and customized as needed Obtaining Release Package https://sourceforge.net/projects/cloudtest/

    Grails权威指南

    第1章 寻找grails之旅  1.1 java的困惑  1.2 webc2.0时代  1.3 java的力量 ... 11.4 在grails中使用spring控制器  11.5 在grails中使用acegi  11.6 使用xfire创建soap服务  11.7 本章小结

    fastenum:Python 3.4 的 Enum 实现的更快版本

    更快的枚举 这个包包含两个更快的 Python 3.4 Enum 类型的实现。 enum_simple是标准库 Enum 的一个小编辑,并且与它完美兼容。 fastenum是一种简化的实现,速度明显更快,但与标准 Enum 不...assert Season1 . SPRIN

    Java面试宝典2010版

    14、spring+Hibernate中委托方案怎么配置? 15、spring+Hibernate中委托方案怎么配置? 16. hibernate进行多表查询每个表中各取几个字段,也就是说查询出来的结果集没有一个实体类与之对应如何解决; 17.介绍一下...

    Java项目开发常用工具包util

    Java项目开发常用工具包,其中主要包括:Assert.java BufferedImageLuminanceSource.java CipherUtil.java ClientConst.java CodeUtil.java ComputeUtil.java DataUtils.java DateUtils.java Digests.java Encodes....

Global site tag (gtag.js) - Google Analytics