java 註解學習補充

r涤生發表於2024-06-25

註解學習筆記

  • @Primary :用於解決依賴注入(DI)中多個候選 bean 的歧義性問題。多個同型別的bean候選時,@Primary可以指定一個首選項,優先選擇該bean進行注入

  • @PropertySource :這個註解用於載入外部的屬性配置檔案,使得Spring應用程式可以讀取這些配置檔案中的屬性值,@PropertySource註釋只宣告瞭配置檔案的位置,需要透過@value來獲得具體屬性值

  • @value 註解:將屬性值注入到Spring Bean中,用來注入配置檔案中的屬性值,比如application.properties 或者 application.yml 中的屬性

  • @Repository 註解:表示一個類是DAO層(資料訪問控制層)中的元件

  • @Transactional註解:用於標記一個方法應該被事務管理器事務化。方法執行前開啟一個事務方法有異常回滾該事務,方法執行成功則提交。

  • @CrossOrigin:Spring中預設禁止跨域,@CrossOrigin可以標記控制器方法或者類。允許跨域且可以用引數配置跨域細節如@CrossOrigin(orgins = "https://xxx.com")表示允許來自https://xxx.com的跨域訪問(某個方法)

  • @Controller:一般和@RequestMapping註解一起使用來處理HTTP請求。@Controller標記的類表示這是一個控制器, Spring MVC 會將其識別為處理請求的元件,根據請求路徑對映到相應的方法上。處理請求時,方法可以返回檢視名稱,Spring MVC 會解析檢視渲染成最終頁面

  • @ResponseBody:方法的返回值直接作為響應體返回給客戶端,而不是透過檢視解析器解析。

  • @RestController :是@Controller的特殊版本,組合了@Controller@ResponseBody註解的功能,表示這是一個RESTful風格的控制器,其中方法都會以JSON或XML返回(直接寫入響應體中),而不渲染檢視

  • @RequestBody:用於將 HTTP 請求的請求體(body)部分對映到方法的引數上,通常用於接收客戶端傳送的 JSON 或 XML 格式的資料,請求體為空或不符合指定的java型別,會報異常.

  • @RequestParam:用於從請求中獲取引數值,並將其繫結到方法的引數上。它主要用於獲取請求 URL 中的引數或表單資料。預設請求引數必須存在,否則會報異常。可以用required=false允許引數缺失,並用defaultValue來設定預設值.

Swagger相關的註解

  • @API(tags="xxx") 是Swagger(一個描述構建RESTful 的API工具)的註解,表示這API屬於 xxx 這個模組下

  • @ApiOperation("xxxx2") 表示該方法的作用或功能是 "xxxx2"。這個描述會顯示在 Swagger UI 生成的 API 文件中,讓使用者可以更容易地理解該方法的用途。

  • @ApiImplicitParams({
    	@ApiImplicitParam(name="path",value="檔案路徑",defaultValue="",required=true)
        @ApiImplicitParam(name="引數2",value="xxx",defaultValue="",required=true)
    })
    

@ApiImplicitParams 是 Swagger 中的註解,用於描述方法引數的詳細資訊。@ApiImplicitParam 則是用於描述單個方法引數的註解。在這個例子中,@ApiImplicitParams 註解包含了一個 @ApiImplicitParam 註解,該註解描述了一個名為 path 的方法引數。具體含義如下:

name="path":指定引數名為 path

value="檔案路徑":指定引數的描述資訊為 "檔案路徑"。

defaultValue="":指定引數的預設值為空字串。

required=true:指定引數為必填引數,即呼叫該方法時必須提供 path 引數的值。

  • @PostMapping(value = "/abc",produces="application/json;charset=utf-8")

    value是請求路徑

    produces指定方法返回型別/相應型別是什麼,這裡返回型別是application/json,且字符集為UTF-8編碼。

  • @ApiModelProperty 註解屬於 Swagger 庫的一部分,主要用於生成 Swagger API 文件。它用於描述模型屬性(即類的欄位),可以提供欄位的描述資訊、示例值、是否必填等資訊。
    value:欄位的描述資訊。
    required:是否為必填欄位(預設值是 false)。
    example:欄位的示例值。
    hidden:是否在文件中隱藏此欄位(預設值是 false)。

  • @NotBlank 註解屬於 javax.validation.constraints 包的一部分,用於驗證字串欄位不能為空或空白(即不能為空字串,不能全是空白字元)。這個註解通常用於表單提交、請求引數等需要校驗的地方。

  • @Valid 註解用於在 Spring 應用中進行引數校驗,通常與 JSR 303/JSR 380 Bean Validation API 結合使用。它可以自動觸發校驗邏輯,確保傳遞給方法的引數符合預定義的約束條件。如果引數不符合約束條件,Spring 會自動丟擲異常。

  • HttpServletRequest 物件代表客戶端的 HTTP 請求,可以透過該物件獲取請求的各種資訊,例如請求的 URL、請求引數、請求頭等。在控制器方法中,可以使用 HttpServletRequest 物件來獲取客戶端傳送的資料,比如登入使用者名稱和密碼。

  • HttpServletResponse 物件代表伺服器對客戶端的 HTTP 響應,可以透過該物件設定響應的各種資訊,例如響應的狀態碼、響應頭、響應體等。在控制器方法中,可以使用 HttpServletResponse 物件來向客戶端傳送資料,比如返回登入成功或失敗的訊息。


相關文章