註解學習筆記
-
@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
物件來向客戶端傳送資料,比如返回登入成功或失敗的訊息。