更新時(shí)間:2020-10-29 16:45:14 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1260次
在業(yè)務(wù)開發(fā)過程中我們會(huì)遇到形形色色的注解,但是框架自有的注解并不是總能滿足復(fù)雜的業(yè)務(wù)需求,我們可以自定義注解來滿足我們的需求。根據(jù)注解使用的位置,文章將分成字段注解、方法、類注解來介紹自定義注解
字段注解
字段注解一般是用于校驗(yàn)字段是否滿足要求,hibernate-validate依賴就提供了很多校驗(yàn)注解,如 NotNull、 Range等,但是這些注解并不是能夠滿足所有業(yè)務(wù)場(chǎng)景的。比如我們希望傳入的參數(shù)在指定的String集合中,那么已有的注解就不能滿足需求了,需要自己實(shí)現(xiàn)。
自定義注解
定義一個(gè) Check注解,通過 interface聲明一個(gè)注解

Target定義注解的使用位置,用來說明該注解可以被聲明在那些元素之前。
?ElementType.TYPE:說明該注解只能被聲明在一個(gè)類前。
?ElementType.FIELD:說明該注解只能被聲明在一個(gè)類的字段前。
?ElementType.METHOD:說明該注解只能被聲明在一個(gè)類的方法前。
?ElementType.PARAMETER:說明該注解只能被聲明在一個(gè)方法參數(shù)前。
?ElementType.CONSTRUCTOR:說明該注解只能聲明在一個(gè)類的構(gòu)造方法前。
?ElementType.LOCAL_VARIABLE:說明該注解只能聲明在一個(gè)局部變量前。
?ElementType.ANNOTATION_TYPE:說明該注解只能聲明在一個(gè)注解類型前。
?ElementType.PACKAGE:說明該注解只能聲明在一個(gè)包名前
Constraint通過使用validatedBy來指定與注解關(guān)聯(lián)的驗(yàn)證器
Retention用來說明該注解類的生命周期。
?RetentionPolicy.SOURCE:注解只保留在源文件中
?RetentionPolicy.CLASS:注解保留在class文件中,在加載到JVM虛擬機(jī)時(shí)丟棄
?RetentionPolicy.RUNTIME:注解保留在程序運(yùn)行期間,此時(shí)可以通過反射獲得定義在某個(gè)類上的所有注解。
驗(yàn)證器類
驗(yàn)證器類需要實(shí)現(xiàn)ConstraintValidator泛型接口

第一個(gè)泛型參數(shù)類型Check:注解,第二個(gè)泛型參數(shù)Object:校驗(yàn)字段類型。需要實(shí)現(xiàn)initialize和isValid方法,isValid方法為校驗(yàn)邏輯,initialize方法初始化工作
使用方式
定義一個(gè)實(shí)體類

對(duì)sex字段加校驗(yàn),其值必須為woman或者man
測(cè)試

注意需要在User對(duì)象上加上@Validated注解,這里也可以使用@Valid注解
動(dòng)力節(jié)點(diǎn)Spring視頻教程,全新企業(yè)級(jí)開發(fā)下載學(xué)習(xí),Spring 是最受歡迎的企業(yè)級(jí) Java 應(yīng)用程序開發(fā)框架,數(shù)以百萬的開發(fā)人員使用 Spring 框架來創(chuàng)建性能好、易于測(cè)試、可重用的代碼。 本課程深入淺出講解Spring的核心技術(shù)IoC、AOP,剖析框架的源代碼。能讓學(xué)員掌握框架的原理和應(yīng)用。
課程學(xué)習(xí)目錄
1.Spring:Spring在三層架構(gòu)中的位置
2.Spring:Spring的作用
3.Spring:什么是Spring
4.Spring:Spring體系結(jié)構(gòu)
5.Spring:Spring框架下載與介紹
6.Spring:Spring特點(diǎn)
7.Spring:IoC與DI
8.Spring:第一個(gè)程序-基本Jar包
9.Spring:第一個(gè)程序-測(cè)試環(huán)境搭建
1.Spring:第一個(gè)程序-定義配置文件
11.Spring:第一個(gè)程序-創(chuàng)建容器并從中獲取對(duì)象
12.Spring:第一個(gè)程序-Spring容器中對(duì)象是何時(shí)被創(chuàng)建的
13.Spring:第一個(gè)程序-FileSystemXmlApplicationContext
14.Spring:第一個(gè)程序-使用BeanFactory容器
15.Spring:第一個(gè)程序-兩個(gè)容器的區(qū)別
16.Spring:bean的裝配-默認(rèn)裝配方式
17.Spring:bean的裝配-動(dòng)態(tài)工廠Bean
18.Spring:bean的裝配-靜態(tài)工廠Bean
19.Spring:bean的裝配-容器中Bean的作用域
2.Spring:bean的裝配-Bean后處理器
21.Spring:bean的裝配-Bean后處理器的應(yīng)用
22.Spring:bean的裝配-定制Bean的生命始末
完整目錄可以關(guān)注動(dòng)力節(jié)點(diǎn)Java視頻教程
以上就是對(duì)“Spring注解視頻教程,經(jīng)費(fèi)系列下載”的介紹,希望對(duì)大家有所幫助,還想學(xué)習(xí)更多關(guān)于Java的課程,可以關(guān)注動(dòng)力節(jié)點(diǎn)官網(wǎng)Java視頻教程,免費(fèi)下載學(xué)習(xí)。
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)