| 編號 | 注解 | 所屬框架 | 作用 |
|---|---|---|---|
| 1 | @Component | Spring | 添加在類上,標記當前類是組件類,可以通過參數(shù)配置Spring Bean名稱 |
| 2 | @Controller | Spring | 添加在類上,標記當前類是控制器組件類,用法同@Component |
| 3 | @Service | Spring | 添加在類上,標記當前類是業(yè)務邏輯組件類,用法同@Component |
| 4 | @Repository | Spring | 添加在類上,標記當前類是數(shù)據(jù)訪問組件類,用法同@Component |
| 5 | @Configuration | Spring | 添加在配置類上,用于代替?zhèn)鹘y(tǒng)的xml配置文件, Spring會在啟動時自動加載帶有@Configuration注解的類 |
| 6 | @ComponentScan | Spring | 添加在配置類上,開啟組件掃描。 如果沒有配置包名,則掃描當前配置類所在的包, 如果配置了包名,則掃描所配置的包及其子孫包 |
| 7 | @Value | Spring | 添加在屬性上,或添加在被Spring調用的方法的參數(shù)上,用于讀取Environment中的屬性值,為對象的屬性或方法的參數(shù)注入值 |
| 8 | @Autowired | Spring | 添加在屬性上,使得Spring自動裝配此屬性的值 添加在構造方法上,使得Spring自動調用此構造方法 添加在Setter方法上,使得Spring自動調用此方法 |
| 9 | @Qualifier | Spring | 添加在屬性上,或添加在方法的參數(shù)上, 配合自動裝配機制,用于指定需要裝配的Spring Bean的名稱 |
| 10 | @Resource | Spring | 此注解是javax包中的注解, 添加在屬性上,使得Spring自動裝配此屬性的值, 通常不推薦使用此注解 |
| 11 | @Scope | Spring | 添加在組件類上,或添加在已經(jīng)添加了@Bean注解的方法上, 用于指定作用域,注解參數(shù)為singleton(默認)時為“單例”,注解參數(shù)為prototype時為“非單例” |
| 13 | @Aspect | Spring | 添加在切面類上,屬于AOP的注解 用于告訴Spring容器將該類識別為一個切面,它定義了切入點(Pointcut)和通知(Advice), 切入點定義了在應用程序中哪些方法或代碼塊應該被攔截和執(zhí)行額外的邏輯, 通知包括前置通知、返回通知、環(huán)繞通知、異常通知和最終通知 |
| 14 | @Before | Spring | 前置通知,添加在切面類方法上, 在目標方法執(zhí)行之前執(zhí)行的通知 |
| 15 | @After | Spring | 后置通知,添加在切面類方法上, 在目標方法最終執(zhí)行之后執(zhí)行的通知 |
| 16 | @AfterReturning | Spring | 返回通知,添加在切面類方法上, 在目標方法正常返回之后執(zhí)行的通知 |
| 17 | @AfterThrowing | Spring | 異常通知,添加在切面類方法上, 在目標方法拋出異常之后執(zhí)行的通知 |
| 18 | @Around | Spring | 環(huán)繞通知,添加在切面類方法上, 將目標方法封裝起來,在目標方法調用之前和之后執(zhí)行自定義的行為,通常使用 try ... catch ... finally 包裹 |
| 19 | @Mapper | Mybatis | 添加在Mapper接口上,用于標記此接口是Mybatis的Mapper接口 |
| 20 | @MapperScan | Mybatis | 添加在配置類上,用于指定Mapper接口的根包,Mybatis將根據(jù)此根包執(zhí)行掃描,以找到各Mapper接口 |
| 21 | @Select | Mybatis | 添加在Mapper接口的抽象方法上,可以通過此注解直接配置此抽象方法對應的SQL語句(不必將SQL語句配置在XML文件中),用于配置SELECT類的SQL語句,但是,非常不推薦這種做法 |
| 22 | @Insert | Mybatis | 同上,用于配置INSERT類的SQL語句 |
| 23 | @Update | Mybatis | 同上,用于配置UPDATE類的SQL語句 |
| 24 | @Delete | Mybatis | 同上,用于配置DELETE類的SQL語句 |
| 25 | @Param | MyBatis | 添加在接口方法參數(shù)前, 用于傳遞多個參數(shù)給SQL語句,在Mapper接口的方法中定義多個參數(shù)時,需要使用@Param注解來標識每個參數(shù)的名字,這樣MyBatis就可以將參數(shù)值綁定到SQL語句中對應的參數(shù)上 |
| 26 | @SpringBootApplication | Spring Boot | 添加在類上,用于標記此類是Spring Boot的啟動類,每個Spring Boot項目應該只有1個類添加了此注解 |
| 27 | @SpringBootTest | Spring Boot | 添加在類上,用于標記此類是加載Spring環(huán)境的測試類 |
| 28 | @Test | Spring Boot | 添加在方法上,用于標記此方法是Spring環(huán)境的測試方法 |
| 29 | @RequestMapping | Spring MVC | 添加在類上,也可以添加在處理請求的方法上, 通常用于配置請求路徑 |
| 30 | @ResponseBody | Spring MVC | 添加在方法上,標記此方法是“響應正文”的, 添加在類上,標記此類中所有方法都是“響應正文”的 |
| 31 | @RestController | Spring MVC | 添加在類上,標記此類是一個“響應正文”的控制器類 |
| 32 | @GetMapping | Spring MVC | 添加在方法上,是將請求方式限制為GET的@RequestMapping |
| 33 | @PostMapping | Spring MVC | 添加在方法上,是將請求方式限制為POST的@RequestMapping |
| 34 | @DeleteMapping | Spring MVC | 添加在方法上,是將請求方式限制為DELETE的@RequestMapping |
| 35 | @PutMapping | Spring MVC | 添加在方法上,是將請求方式限制為PUT的@RequestMapping |
| 36 | @PathVariable | Spring MVC | 添加在請求參數(shù)上,用于標記此參數(shù)的值來自URL中的占位符,如果URL中的占位符名稱與方法的參數(shù)名稱不同,需要配置此注解參數(shù)來指定URL中的占位符名稱 |
| 37 | @RequestBody | Spring MVC | 添加在請求參數(shù)上,用于標記此參數(shù)必須是對象格式的參數(shù),如果未添加此注解,參數(shù)必須是FormData格式的 |
| 38 | @RequestParam | Spring MVC | 添加在請求參數(shù)上,用于將請求參數(shù)值綁定到控制器方法的參數(shù)上,同時方便使用 Knife4j 測試 |
| 39 | @ExceptionHandler | Spring MVC | 添加在方法上,標記此方法是處理異常的方法,可以通過配置注解參數(shù)來指定需要處理的異常類型,如果沒有配置注解參數(shù),所處理的異常類型取決于方法的參數(shù)列表中的異常類型 |
| 40 | @ControllerAdvice | Spring MVC | 添加在類上,標記此類中特定的方法將作用于每次處理請求的過程中 |
| 41 | @RestControllerAdvice | Spring MVC | 添加在類上,是@ControllerAdvice和@ResponseBody的組合注解 |
| 42 | @Data | Lombok | 添加在類上,將在編譯期生成此類中所有屬性的Setter、Getter方法,及hashCode()、equals()、toString()方法 |
| 43 | @Setter | Lombok | 添加在類上,將在編譯期生成此類中所有屬性的Setter方法,也可以添加在類的屬性上,將在編譯期生成此屬性的Setter方法 |
| 44 | @Getter | Lombok | 添加在類上,將在編譯期生成此類中所有屬性的Getter方法,也可以添加在類的屬性上,將在編譯期生成此屬性的Getter方法 |
| 45 | @ToString | Lombok | 添加在類上,將在編譯期生成基于此類中所有屬性的toString()方法 |
| 46 | @NoArgConstructor | Lombok | 添加在類上,將在編譯期生成此類的無參數(shù)構造方法 |
| 47 | @AllArgsConstructor | Lombok | 添加在類上,將在編譯期生成基于此類中所有屬性的全參構造方法 |
| 48 | @Api | Knife4j | 添加在控制器類上,通過此注解的tags屬性配置API文檔中的模塊名稱 |
| 49 | @ApiOperation | Knife4j | 添加在控制器類中處理請求的方法上,用于配置業(yè)務名稱 |
| 50 | @ApiModelProperty | Knife4j | 添加在封裝的請求參數(shù)類型中的屬性上,用于配置請求參數(shù)的詳細說明,包括:名稱、數(shù)據(jù)類型、是否必須等 |
| 51 | @ApiImplicitParam | Knife4j | 添加在控制器類中處理請求的方法上,用于配置請求參數(shù)的詳細說明,包括:名稱、數(shù)據(jù)類型、是否必須等 |
| 52 | @ApiImplicitParams | Knife4j | 添加在控制器類中處理請求的方法上,如果需要通過@ApiImplicitParam注解配置的參數(shù)超過1個,則必須將多個@ApiImplicitParam注解作為此注解的參數(shù) |
| 53 | @ApiIgnore | Knife4j | 添加在請求參數(shù)上,用于標記API文檔中將不關心此參數(shù) |
| 54 | @Validated | Spring Validation | 添加在方法的參數(shù)上,標記此參數(shù)需要經(jīng)過Validation框架的檢查;添加在類上,并結合方法上的檢查注解(例如@NotNull等)實現(xiàn)對未封裝的參數(shù)的檢查 |
| 55 | @NotNull | Spring Validation | 添加在需要被檢查的參數(shù)上,或添加在需要被檢查的封裝類型的屬性上,用于配置“不允許為null”的檢查規(guī)則 |
| 56 | @NotEmpty | Spring Validation | 使用位置同@NotNull,用于配置“不允許為空字符串”的檢查規(guī)則 |
| 57 | @NotBlank | Spring Validation | 使用位置同@NotNull,用于配置“不允許為空白”的檢查規(guī)則 |
| 58 | @Pattern | Spring Validation | 使用位置同@NotNull,用于配置正則表達式的檢查規(guī)則 |
| 59 | @Range | Spring Validation | 使用位置同@NotNull,用于配置“數(shù)值必須在某個取值區(qū)間”的檢查規(guī)則 |
注解大全圖解
