spring-web加javax.validation實現統一驗證處理

直接看代碼比較易懂

這是一個web接口,注意註解的寫法

	@GetMapping("/listByIds")
    @Validated // import org.springframework.validation.annotation.Validated;
    private ServiceR listByIds(@RequestParam @NotNull Long[] ids) { // import javax.validation.constraints.NotNull;
    ... ...
    }

當參數ids爲null時,將被拒絕服務。

寫一個類攔截異常

@RestControllerAdvice
public class BaseController {
	@ExceptionHandler({Exception.class})
    public Response handleException(Exception e) {
        return Response.error(e.getMessage());
    }
}

當訪問異常時,將統一由此返回信息給調用方。Rest json化。如不傳參調用接口時↓
在這裏插入圖片描述
因爲ids不存在

或者拋出RuntimeException時,將被攔截到,從而進行一些處理。

	if(參數不合法) throw new RuntimeException("參數長度不能爲0!");

總而言之,簡化代碼,使代碼變得優雅。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章