电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Java Validation方法入?yún)⑿r瀸崿F(xiàn)過程解析

瀏覽:6日期:2022-08-21 08:33:38

一.前言

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

二.Java Validation組件

JSR

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

Hibernate Validation

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

三.用法

引入依賴:

<dependency><groupId>javax.validation</groupId><artifactId>validation-api</artifactId></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId></dependency>

手動添加bean :

對實體類添加注解:

@DatapublicclassPeople {@NotNull(message = '姓名不能為空')privateStringname;@Min(value = 1, message = '年齡不能小于1歲')privateInteger size;}

Controller層上用法:

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

@RestController@RequestMapping('/api')publicclassPeopleController {@AutowiredprivatePeopleService peopleService;@RequestMapping('/addPeople')publicStringaddPeople(@Valid@RequestBodyPeople people) {peopleService.addPeople(people);return'ok';}}

Service層上用法:

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

@Validated public interface PeopleService { voidaddPeople(@ValidPeople people);}

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

四.原理

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

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

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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標簽: Java
相關(guān)文章:
主站蜘蛛池模板: 奶茶加盟,奶茶加盟店连锁品牌-甜啦啦官网 | RTO换向阀_VOC高温阀门_加热炉切断阀_双偏心软密封蝶阀_煤气蝶阀_提升阀-湖北霍科德阀门有限公司 | 超细粉碎机|超微气流磨|气流分级机|粉体改性设备|超微粉碎设备-山东埃尔派粉碎机厂家 | 应急灯_消防应急灯_应急照明灯_应急灯厂家-大成智慧官网 | 臻知网大型互动问答社区-你的问题将在这里得到解答!-无锡据风网络科技有限公司 | 流量检测仪-气密性检测装置-密封性试验仪-东莞市奥图自动化科技有限公司 | 合肥花魁情感婚姻咨询中心_挽回爱情_修复婚姻_恋爱指南 | 培训一点通 - 合肥驾校 - 合肥新亚驾校 - 合肥八一驾校 | 防火卷帘门价格-聊城一维工贸特级防火卷帘门厂家▲ | 高压包-点火器-高压发生器-点火变压器-江苏天网 | 展厅装修公司|企业展厅设计|展厅制作|展厅搭建—广州展厅装饰公司 | 冷柜风机-冰柜电机-罩极电机-外转子风机-EC直流电机厂家-杭州金久电器有限公司 | 档案密集架_电动密集架_移动密集架_辽宁档案密集架-盛隆柜业厂家现货批发销售价格公道 | 郑州宣传片拍摄-TVC广告片拍摄-微电影短视频制作-河南优柿文化传媒有限公司 | 断桥铝破碎机_铝合金破碎机_废铁金属破碎机-河南鑫世昌机械制造有限公司 | 齿轮减速电机一体机_蜗轮蜗杆减速马达-德国BOSERL齿轮减速机带电机生产厂家 | 南京PVC快速门厂家南京快速卷帘门_南京pvc快速门_世界500强企业国内供应商_南京美高门业 | 成都办公室装修-办公室设计-写字楼装修设计-厂房装修-四川和信建筑装饰工程有限公司 | 心得体会网_心得体会格式范文模板 | 真空搅拌机-行星搅拌机-双行星动力混合机-广州市番禺区源创化工设备厂 | 右手官网|右手工业设计|外观设计公司|工业设计公司|产品创新设计|医疗产品结构设计|EMC产品结构设计 | 西门子伺服控制器维修-伺服驱动放大器-828D数控机床维修-上海涌迪 | 气动隔膜阀_气动隔膜阀厂家_卫生级隔膜阀价格_浙江浙控阀门有限公司 | 微型气泵-真空-蠕动-水泵-厂家-深圳市品亚科技有限公司 | 手机存放柜,超市储物柜,电子储物柜,自动寄存柜,行李寄存柜,自动存包柜,条码存包柜-上海天琪实业有限公司 | 脱硫搅拌器厂家-淄博友胜不锈钢搅拌器厂家 | 精密机械零件加工_CNC加工_精密加工_数控车床加工_精密机械加工_机械零部件加工厂 | 湿地保护| 自动化展_机器人展_机床展_工业互联网展_广东佛山工博会 | 硫化罐-胶管硫化罐-山东鑫泰鑫智能装备有限公司 | 超声波焊接机_超音波熔接机_超声波塑焊机十大品牌_塑料超声波焊接设备厂家 | 在线PH计-氧化锆分析仪-在线浊度仪-在线溶氧仪- 无锡朝达 | 制氮设备-变压吸附制氮设备-制氧设备-杭州聚贤气体设备制造有限公司 | 外贸网站建设-外贸网站设计制作开发公司-外贸独立站建设【企术】 | 彭世修脚_修脚加盟_彭世修脚加盟_彭世足疗加盟_足疗加盟连锁_彭世修脚技术培训_彭世足疗 | 外观设计_设备外观设计_外观设计公司_产品外观设计_机械设备外观设计_东莞工业设计公司-意品深蓝 | BESWICK球阀,BESWICK接头,BURKERT膜片阀,美国SEL继电器-东莞市广联自动化科技有限公司 | 北京企业宣传片拍摄_公司宣传片制作-广告短视频制作_北京宣传片拍摄公司 | 抖音短视频运营_企业网站建设_网络推广_全网自媒体营销-东莞市凌天信息科技有限公司 | 头条搜索极速版下载安装免费新版,头条搜索极速版邀请码怎么填写? - 欧远全 | 粉末冶金-粉末冶金齿轮-粉末冶金零件厂家-东莞市正朗精密金属零件有限公司 |