日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java 入参校验_Java Validation方法入参校验实现过程解析

發布時間:2023/12/14 java 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 入参校验_Java Validation方法入参校验实现过程解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.前言

在日常的開發中,經常需要對方法參數進行校驗(非空、長度等)。如果采用hardcode去校驗(if..else..),會造成代碼冗余,復用性低,導致維護成本比較高。借助Validation組件,可以很方便地通過注解來校驗參數。

二.Java Validation組件

JSR

JSR 是一種規范標準,規定了一些校驗規范的注解,位于javax.validation.constraints包下,只提供規范不提供實現,如@NotNull,@Size 等

Hibernate Validation

hibernate Validation 與 hibernate ORM框架沒有半毛錢關系,它提供了JSR的實現,位于org.hibernate.validator.constraints包下。

三.用法

引入依賴:

javax.validation

validation-api

org.hibernate

hibernate-validator

手動添加bean :

對實體類添加注解:

@Data

publicclassPeople {

@NotNull(message = "姓名不能為空")

privateStringname;

@Min(value = 1, message = "年齡不能小于1歲")

privateInteger size;

}

Controller層上用法:

如果在Spring的Controller層引用以上Java Bean對象,則需要加上@Valid注解,用法如下:

@RestController

@RequestMapping("/api")

publicclassPeopleController {

@Autowired

privatePeopleService peopleService;

@RequestMapping("/addPeople")

publicStringaddPeople(@Valid@RequestBodyPeople people) {

peopleService.addPeople(people);

return"ok";

}

}

Service層上用法:

@Valid注解,當我們用Service接口層的時候,會發現參數校驗邏輯是不生效的。要向讓@Valid注解在controller層以外的地方生效,必須配合@Validated來使用。這是因為Spring給我們創建了一個用于參數校驗的AOP切面邏輯,過濾方式就是class被@Validated修飾的bean對象。所以我們可以使用@Validated來修飾我們的service層實現類:

@Validated

public interface PeopleService {

voidaddPeople(@ValidPeople people);

}

Controller層不需要@Validated注解是因為在Spring的controller層有數據綁定和校驗的過程,默認就會對@Valid修飾的方法參數使用Validator來做校驗邏輯。

四.原理

1.利用Spring ioc,注入MethodValidationPostProcessor和LocalValidatorFactoryBean。

2.利用Spring ioc提供的擴展點(BeanPostProcessor, InitializingBean),初始化攔截器MethodValidationInterceptor

3.MethodValidationPostProcessor用來生成和植入攔截器MethodValidationInterceptor,調用方法時自動攔截。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

總結

以上是生活随笔為你收集整理的java 入参校验_Java Validation方法入参校验实现过程解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。