java相關(guān)的108個注解

jdk

@Resource

@Bean

@Before

@SuppressWarnings

@Override


junit

@Test

status

@Action/@Actions

@Result/@Results


hibernate

@Entity

將 一個類聲明為一個持久化類

@Id

聲明了持久化類的標識屬性(相當于數(shù)據(jù)表的主鍵)

@GeneratedValue

定義標識屬性值的生成策略
@Table

為持久化類映射指定表(table)、目錄(catalog)和schema的名稱。默認值,持久化類名,不帶包名

@UniqueConstraint

定義表的唯一約束

@Lob

表示屬性將被持久化為Blob或者Clob類型

@Column

將屬性映射到列

@Transient

忽略這些字段和屬性,不用持久化到數(shù)據(jù)庫

@Transactional

聲明事務(wù)

@TableField




spring

@Component

是所有受Spring?管理組件的通用形式,@Component注解可以放在類的頭上,@Component不推薦使用。

@Controller

對應(yīng)表現(xiàn)層的Bean,也就是Action

@ Service

業(yè)務(wù)層Bean

@ Repository

應(yīng)數(shù)據(jù)訪問層Bean

@Autowired

@RequestMapping

@ResponseBody


@SpringBootApplication


@MapperScan

@Configuration

@Value


aop

@Around

環(huán)繞

@Before?

前置

@After

后置

Lombok

@NonNull : 讓你不在擔憂并且愛上NullPointerException

@CleanUp : 自動資源管理:不用再在finally中添加資源的close方法

@Setter/@Getter : 自動生成set和get方法

@ToString : 自動生成toString方法

@EqualsAndHashcode : 從對象的字段中生成hashCode和equals的實現(xiàn)

@NoArgsConstructor/@RequiredArgsConstructor/@AllArgsConstructor

自動生成構(gòu)造方法

@Data : 自動生成set/get方法,toString方法,equals方法,hashCode方法,不帶參數(shù)的構(gòu)造方法

@Value : 用于注解final類

@Builder : 產(chǎn)生復(fù)雜的構(gòu)建器api類

@SneakyThrows : 異常處理(謹慎使用)

@Synchronized : 同步方法安全的轉(zhuǎn)化

@Getter(lazy=true) :

@Log : 支持各種logger對象,使用時用對應(yīng)的注解,如:@Log4j

@Slf4j

?同時也需要注意下intellij 中需要安裝插件才能生效的問題

https://blog.csdn.net/m0_37779977/article/details/79028299????

Validation

@Null限制只能為null

@NotNull限制必須不為null

@AssertFalse限制必須為false

@AssertTrue限制必須為true

@DecimalMax(value)限制必須為一個不大于指定值的數(shù)字

@DecimalMin(value)限制必須為一個不小于指定值的數(shù)字

@Digits(integer,fraction)限制必須為一個小數(shù),且整數(shù)部分的位數(shù)不能超過integer,小數(shù)部分的位數(shù)不能超過fraction

@Future限制必須是一個將來的日期

@Max(value)限制必須為一個不大于指定值的數(shù)字

@Min(value)限制必須為一個不小于指定值的數(shù)字

@Past限制必須是一個過去的日期

@Pattern(value)限制必須符合指定的正則表達式

@Size(max,min)限制字符長度必須在min到max之間

@Past驗證注解的元素值(日期類型)比當前時間早

@NotEmpty驗證注解的元素值不為null且不為空(字符串長度不為0、集合大小不為0)

@NotBlank驗證注解的元素值不為空(不為null、去除首位空格后長度為0),不同于@NotEmpty,@NotBlank只應(yīng)用于字符串且在比較時會去除字符串的空格

@Email驗證注解的元素值是Email,也可以通過正則表達式和flag指定自定義的email格式



mybatis


@CacheNamespace

為給定的命名空間(比如類)配置緩存。屬性:implemetation,eviction,flushInterval,size,readWrite,blocking和properties。

@Property

指定屬性值或占位符(可以由mybatis-config.xml中定義的配置屬性替換)。屬性:name,value。(在MyBatis3.4.2+上可用)

@CacheNamespaceRef

參照另外一個命名空間的緩存來使用。屬性:value,name。如果使用此注釋,則應(yīng)指定value或name屬性。value屬性指定指定命名空間的java類型(命名空間名稱成為指定的java類型的FQCN),對于name屬性(此屬性自3.4.2起可用)指定命名空間的名稱。

@ConstructorArgs

收集一組結(jié)果傳遞給一個劫奪對象的構(gòu)造方法。屬性:value,是形式參數(shù)的數(shù)組。

@Arg

單獨的構(gòu)造方法參數(shù),是ConstructorArgs集合的一部分。屬性:id,column,javaType,typeHandler。id屬性是布爾值,來標識用于比較的屬性,和XML元素相似。

@TypeDiscriminator

一組實例值被用來決定結(jié)果映射的表現(xiàn)。屬性:column,javaType,jdbcType,typeHandler,cases。cases屬性就是實例的數(shù)組。

@Case

單獨實例的值和它對應(yīng)的映射。屬性:value,type,results。Results屬性是結(jié)果數(shù)組,因此這個注解和實際的ResultMap很相似,由下面的Results注解指定。

@Results

結(jié)果映射的列表,包含了一個特別結(jié)果列如何被映射到屬性或字段的詳情。屬性:value,id。value屬性是Result注解的數(shù)組。這個id的屬性是結(jié)果映射的名稱。

@Result

在列和屬性或字段之間的單獨結(jié)果映射。屬性:id,column,property,javaType,jdbcType,typeHandler,one,many。id屬性是一個布爾值,表示了應(yīng)該被用于比較(和在XML映射中的相似)的屬性。one屬性是單獨的聯(lián)系,和相似,而many屬性是對集合而言的,和相似。它們這樣命名是為了避免名稱沖突。

@One

復(fù)雜類型的單獨屬性值映射。屬性:select,已映射語句(也就是映射器方法)的完全限定名,它可以加載合適類型的實例。注意:聯(lián)合映射在注解API中是不支持的。這是因為Java注解的限制,不允許循環(huán)引用。fetchType會覆蓋全局的配置參數(shù)lazyLoadingEnabled。

@Many

映射到復(fù)雜類型的集合屬性。屬性:select,已映射語句(也就是映射器方法)的全限定名,它可以加載合適類型的實例的集合,fetchType會覆蓋全局的配置參數(shù)lazyLoadingEnabled。注意聯(lián)合映射在注解API中是不支持的。這是因為Java注解的限制,不允許循環(huán)引用

@MapKey

復(fù)雜類型的集合屬性映射。屬性:select,是映射語句(也就是映射器方法)的完全限定名,它可以加載合適類型的一組實例。注意:聯(lián)合映射在Java注解中是不支持的。這是因為Java注解的限制,不允許循環(huán)引用。

@Options

這個注解提供訪問交換和配置選項的寬廣范圍,它們通常在映射語句上作為屬性出現(xiàn)。而不是將每條語句注解變復(fù)雜,Options注解提供連貫清晰的方式來訪問它們。屬性:useCache=true,flushCache=FlushCachePolicy.DEFAULT,resultSetType=FORWARD_ONLY,statementType=PREPARED,fetchSize=-1,timeout=-1useGeneratedKeys=false,keyProperty=”id”,keyColumn=””,resultSets=””。理解Java注解是很重要的,因為沒有辦法來指定“null”作為值。因此,一旦你使用了Options注解,語句就受所有默認值的支配。要注意什么樣的默認值來避免不期望的行為。

@Insert

@Update

@Delete

@Select

這些注解中的每一個代表了執(zhí)行的真實SQL。它們每一個都使用字符串數(shù)組(或單獨的字符串)。如果傳遞的是字符串數(shù)組,它們由每個分隔它們的單獨空間串聯(lián)起來。這就當用Java代碼構(gòu)建SQL時避免了“丟失空間”的問題。然而,如果你喜歡,也歡迎你串聯(lián)單獨的字符串。屬性:value,這是字符串數(shù)組用來組成單獨的SQL語句。


@InsertProvider

@UpdateProvider

@DeleteProvider

@SelectProvider

這些可選的SQL注解允許你指定一個類名和一個方法在執(zhí)行時來返回運行允許創(chuàng)建動態(tài)的SQL?;趫?zhí)行的映射語句,MyBatis會實例化這個類,然后執(zhí)行由provider指定的方法.該方法可以有選擇地接受參數(shù)對象.(InMyBatis3.4orlater,it'sallowmultipleparameters)屬性:type,method。type屬性是類。method屬性是方法名。注意:這節(jié)之后是對類的討論,它可以幫助你以干凈,容于閱讀的方式來構(gòu)建動態(tài)SQL

@Param

如果你的映射器的方法需要多個參數(shù),這個注解可以被應(yīng)用于映射器的方法參數(shù)來給每個參數(shù)一個名字。否則,多參數(shù)將會以它們的順序位置來被命名(不包括任何RowBounds參數(shù))比如。#{param1},#{param2}等,這是默認的。使用@Param(“person”),參數(shù)應(yīng)該被命名為#{person}。

@SelectKey

該注解復(fù)制了的功能,用在注解了@Insert,@InsertProvider,@Updateor@UpdateProvider的方法上。在其他方法上將被忽略。如果你指定了一個@SelectKey注解,然后Mybatis將忽略任何生成的key屬性通過設(shè)置@Options,或者配置屬性。屬性:statement是要執(zhí)行的sql語句的字符串數(shù)組,keyProperty是需要更新為新值的參數(shù)對象屬性,before可以是true或者false分別代表sql語句應(yīng)該在執(zhí)行insert之前或者之后,resultType是keyProperty的Java類型,statementType是語句的類型,取Statement,PreparedStatement和CallableStatement對應(yīng)的STATEMENT,PREPARED或者CALLABLE其中一個,默認是PREPARED

@ResultMap

這個注解給@Select或者@SelectProvider提供在XML映射中的的id。這使得注解的select可以復(fù)用那些定義在XML中的ResultMap。如果同一select注解中還存在@Results或者@ConstructorArgs,那么這兩個注解將被此注解覆蓋。

@ResultType

當使用結(jié)果處理器時啟用此注解。這種情況下,返回類型為void,所以Mybatis必須有一種方式?jīng)Q定對象的類型,用于構(gòu)造每行數(shù)據(jù)。如果有XML的結(jié)果映射,使用@ResultMap注解。如果結(jié)果類型在XML的select節(jié)點中指定了,就不需要其他的注解了。其他情況下則使用此注解。比如,如果@Select注解在一個方法上將使用結(jié)果處理器,返回類型必須是void并且這個注解(或者@ResultMap)是必須的。這個注解將被忽略除非返回類型是void。

@Flush

如果這個注解使用了,它將調(diào)用定義在Mapper接口中的SqlSession#flushStatements方法。(Mybatis3.3或者以上)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 簡介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存儲過程以及高級映射的優(yōu)秀的...
    笨鳥慢飛閱讀 6,271評論 0 4
  • 20180424親愛的婆婆,今天是您的生日,晚飯后你才說今天是您的生日。是我們的失職,真不知道您的生日是哪天。祝您...
    簡單的幸福_ceb3閱讀 183評論 0 2
  • 1. 小牛媽媽: 親愛的,介紹一下您自己吧,您是如何與日記星球結(jié)緣的? 我是256號星寶寶奶粉美食公主梅子,來自于...
    梅子日記閱讀 522評論 0 0
  • 昨夜降雪悄無聲, 推窗不見路行人, 舊雪未消添新景, 忙碌不覺又年根。 2018.1.31晨于臨江仙齋
    無極英雄閱讀 206評論 0 2

友情鏈接更多精彩內(nèi)容