1. 程式人生 > >Spring中Assert工具類的用法

Spring中Assert工具類的用法

Spring在提供一個強大的應用開發框架的同時也提供了很多優秀的開發工具類,合理的運用這些工具,將有助於提高開發效率、增強程式碼質量。下面就最常用的Assert工具類,簡要介紹一下它的用法。
Assert斷言工具類,通常用於資料合法性檢查,在JAVA程式設計中,通常會編寫如下程式碼:  

if (name == null || name.equls("")) { 
    throw new IllegalArgumentException("引數錯誤!"); 
}  
    
在所有方法中都使用手工檢測合法性的方式並不是太好,因為這樣影響了程式碼的可讀性,若使用Assert工具類上面的程式碼可以簡化為: 
 
Assert.hasText((name, "引數錯誤!");

這樣可以大大增強程式碼的可讀性,下面我們來介紹一下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,否則將丟擲異常;

使用 Assert 斷言類可以簡化方法入參檢測的程式碼,如 InputStream getData(String file) 在應用 Assert 斷言類後,其程式碼可以簡化為以下的形式:

public InputStream getData(String file){
    Assert.hasText(file,"file入參不是有效的檔案地址");
    ① 使用 Spring 斷言類進行方法入參檢測

}


相關推薦

SpringAssert工具用法

Spring在提供一個強大的應用開發框架的同時也提供了很多優秀的開發工具類,合理的運用這些工具,將有助於提高開發效率、增強程式碼質量。下面就最常用的Assert工具類,簡要介紹一下它的用法。 Assert斷言工具類,通常用於資料合法性檢查,在JAVA程式設計中,通常會

SpringAssert工具

轉載自:[url]http://www.ibm.com/developerworks/cn/java/j-lo-spring-utils2/index.html[/url]方法入參檢測工具類Web 應用在接受表單提交的資料後都需要對其進行合法性檢查,如果表單資料不合法,請求將

關於springAssert的應用(方法入參檢測工具

Web 應用在接受表單提交的資料後都需要對其進行合法性檢查,如果表單資料不合法,請求將被駁回。類似的,當我們在編寫類的方法時,也常常需要對方法入參進行合 法性檢查,如果入參不符合要求,方法將通過丟擲異常的方式拒絕後續處理。舉一個例子:有一個根據檔名獲取輸入流的方法:Input

Spring專案普通工具呼叫service介面

WebApplicationContext context = ContextLoader.getCurrentWebApplicationContext(); IControlService controlService= (IControlService) context

Spring 在靜態工具使用註解注入bean

問題 最近在專案中遇到這樣一個情況:有一個傳送郵件的工具類。在這個工具類中提供了幾種靜態方法,靜態方法需要另外一個類的例項提供處理。在static方法裡呼叫注入進來的service,因為是靜態方法,所以必須宣告該service也必須是static的,這時候發現

Spring boot使用工具 無需注入獲取.yml的值

專案中經常需要將路徑URL等資訊單獨提出寫到配置檔案中,之前使用Spring時一般都是用 .properties檔案來存這些公共資訊,那麼如何在spring boot中優雅的使用.yml檔案存取呢、、首先定義存放公共資訊的 .yml 配置檔案定義為 application-c

java開發spring常用的工具

內建的resouce型別 UrlResource ClassPathResource FileSystemResource ServletContextResource InputStreamResource ByteArrayResource Enco

spring boot PropertiesUtil 工具的建立和應用

在spring boot 專案中 使用 自定義 PropertyPlaceholderConfigurer會造成 @Vaule 無法正常注入,spring boot 已經有一個預設的實現,所以會造成衝突,在spriing mvc 中可以 使用PropertyPlacehold

Spring的斷言工具Assert的基本使用

Assert.notNull(Object object, "object is required")    -    物件非空 Assert.isTrue(Object object, "object must be true")   -    物件必須為true   As

(轉)Spring 的優秀工具盤點

空白 nts tee 環境 fin 編寫 and 程序調試 word 第 1 部分: 文件資源操作和 Web 相關工具類 http://www.ibm.com/developerworks/cn/java/j-lo-spring-utils1/ 文件資源操作 文件資源的操作

hibernate criteria Restrictions工具用法

ear chmod cti like sea ike AR generate AD CriteriaQuery cq = new CriteriaQuery(TSUser.class, dataGrid); // 查詢條件組裝器 org.jeecgframework.c

pythonassert斷言的用法

  本文轉載自  python中assert斷言的用法 >>> assert 1 == 0 Traceback (most recent call last):  File "<stdin>", line 1, in &l

Spring 的優秀工具

檔案資源操作 檔案資源的操作是應用程式中常見的功能,如當上傳一個檔案後將其儲存在特定目錄下,從指定地址載入一個配置檔案等等。我們一般使用 JDK 的 I/O 處理類完成這些操作,但對於一般的應用程式來說,JDK 的這些操作類所提供的方法過於底層,直接使用它們進行檔案操作不但

Spring 的優秀工具盤點---轉

第 1 部分: 檔案資源操作和 Web 相關工具類 http://www.ibm.com/developerworks/cn/java/j-lo-spring-utils1/ 檔案資源操作 檔案資源的操作是應用程式中常見的功能,如當上傳一個檔案後將其儲存在特定目錄下,從指定地址載入一個配置檔案等等。我們一

spring常用的工具

spring給我們提供了很多的工具類, 應該在我們的日常工作中很好的利用起來. 它可以大大的減輕我們的平時編寫程式碼的長度. 因我們只想用spring的工具類,  而不想把一個大大的spring工程給引入進來. 下面是我從spring3.0.5裡抽取出來的工具類.  在最後給出我提取出來的spring程式碼打

Springfactory-method的用法

1. 通過靜態方法例項化一個bean,例項化出來的bean的型別對應於靜態方法的返回型別,這地點不同於普通的bean    (1) 靜態方法無引數:    <bean id="thefmbean" class="springtest.FactoryMethodBean

spring hibernate實體註解

@Autowired宣告在屬性上,表示這個屬性需要注入 然後在你的applicationContext.xml中加入以下配製 <context:component-scan base-pack

Spring 的優秀工具盤點,第 2 部分: 特殊字元轉義和方法入參檢測工具

特殊字元轉義 由於 Web 應用程式需要聯合使用到多種語言,每種語言都包含一些特殊的字元,對於動態語言或標籤式的語言而言,如果需要動態構造語言的內容時,一個我們經常會碰到的問題就是特殊字元轉義的問題。下面是 Web 開發者最常面對需要轉義的特殊字元型別: HTML 特

從static變數初始化到SpringSpring boot的工具靜態變數注入

寫這篇博文,要從java.lang.ExceptionInInitializerError這個報錯開始。簡單的看上去,這是一個類初始化異常報錯。但事實上並不是這樣,這是由於呼叫某個static變數屬

SpringResource實現

常用字首:http: --該字首用於訪問基於Http協議的網路資源ftp: --該字首用於訪問基於FTP協議的網路資源UrlResource是對java.net.URL的封裝,所以UrlR