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或者以上)