
- Spring Boot 教程
- Spring Boot - 首頁
- Spring Boot - 簡介
- Spring Boot - 快速入門
- Spring Boot - 引導
- Spring Tool Suite
- Spring Boot - Tomcat 部署
- Spring Boot - 構建系統
- Spring Boot - 程式碼結構
- Spring Bean & 依賴注入
- Spring Boot - 執行器
- Spring Boot - 啟動器
- Spring Boot - 應用屬性
- Spring Boot - 配置
- Spring Boot – 註解
- Spring Boot - 日誌
- 構建 RESTful Web 服務
- Spring Boot - 異常處理
- Spring Boot - 攔截器
- Spring Boot - Servlet 過濾器
- Spring Boot - Tomcat 埠號
- Spring Boot - Rest Template
- Spring Boot - 檔案處理
- Spring Boot - 服務元件
- Spring Boot - Thymeleaf
- 使用 RESTful Web 服務
- Spring Boot - CORS 支援
- Spring Boot - 國際化
- Spring Boot - 排程
- Spring Boot - 啟用 HTTPS
- Spring Boot - Eureka 伺服器
- 使用 Eureka 註冊服務
- 閘道器代理伺服器和路由
- Spring Cloud 配置伺服器
- Spring Cloud 配置客戶端
- Spring Boot - Actuator
- Spring Boot - Admin 伺服器
- Spring Boot - Admin 客戶端
- Spring Boot - 啟用 Swagger2
- Spring Boot - 使用 SpringDoc OpenAPI
- Spring Boot - 建立 Docker 映象
- 跟蹤微服務日誌
- Spring Boot - Flyway 資料庫
- Spring Boot - 傳送郵件
- Spring Boot - Hystrix
- Spring Boot - Web Socket
- Spring Boot - 批處理服務
- Spring Boot - Apache Kafka
- Spring Boot - Twilio
- Spring Boot - 單元測試用例
- Rest Controller 單元測試
- Spring Boot - 資料庫處理
- 保護 Web 應用程式
- Spring Boot - 使用 JWT 的 OAuth2
- Spring Boot - Google Cloud Platform
- Spring Boot - Google OAuth2 登入
- Spring Boot 資源
- Spring Boot - 快速指南
- Spring Boot - 有用資源
- Spring Boot - 討論
Spring Boot – 註解
本章將詳細討論 Spring Boot 中一些必要的註解。
介紹
註解是程式碼的元資料。元資料指的是關於資料的資料。它們通常放置在類、方法或變數宣告的頂部。註解是一些以@開頭的字母數字值。在類中放置註解不會影響程式的編譯或執行。當註解用於配置時,就不需要 XML 檔案了。
註解@Component, @Configuration, @SpringBootApplication, @EnableAutoConfiguration, @ComponentScan, @AutoConfigurationPackage, @ConditionalOnClass, @ConditionalOnMissingBean, @ConditionalOnProperty已經在Spring Boot - 配置/自動配置章節中討論過了。
如何開啟 Spring 註解?
要開啟 Spring 註解,請在 XML 配置檔案中的 bean 宣告之前新增以下<context:annotation-config />。
註解
@RestController
@RestController 將一個類標記為 RESTful web 請求的控制器。它結合了@Controller和@ResponseBody的功能。以下是它的作用
@Controller− 將類標記為 Spring MVC 控制器,負責處理傳入的 HTTP 請求。
@ResponseBody− 告訴 Spring 將控制器的返回值直接序列化到 HTTP 響應體中,通常以 JSON 或 XML 等格式。
HTTP 相關注解
@RequestMapping
@RequestMapping 註解用於將 web 請求對映到控制器類中的特定處理程式方法。它充當傳入 HTTP 請求和負責處理它們的 方法之間的橋樑。可以使用method屬性指定方法處理的 HTTP 方法(GET、POST、PUT、DELETE 等)。
在最新的 Spring Boot 版本中,首選方式是使用快捷註解而不是@RequestMapping
@GetMapping− @RequestMapping(method = RequestMethod.GET)的快捷方式
@PostMapping− @RequestMapping(method = RequestMethod.POST)的快捷方式
@PutMapping− @RequestMapping(method = RequestMethod.PUT)的快捷方式
@DeleteMapping− @RequestMapping(method = RequestMethod.DELETE)的快捷方式
@PatchMapping− @RequestMapping(method = RequestMethod.PATCH)的快捷方式
Spring 目前支援五種內建註解來處理不同型別的傳入 HTTP 請求方法,分別是 GET、POST、PUT、DELETE 和 PATCH。
@PathVariable
@PathVariable 將方法引數繫結到 URI 模板變數。URI 模板變數是 URI 中用花括號括起來的引數,可以在解析 URI 之前進行替換。
例如,在 URI 模板
'/users/{id}/{? query1,query2}'
中有三個變數
id − 必需的路徑變數
query1 − 可選的查詢變數
query2 − 另一個可選的查詢變數
@RequestParam
@RequestParam 將方法引數繫結到請求引數。
@RequestBody
@RequestBody 將方法引數繫結到 HTTP 請求的主體。
@ModelAttribute
@ModelAttribute 將方法引數繫結到模型屬性。在 Spring Boot 中,模型變數是一個介面,用於儲存從控制器傳遞到檢視的資料。此介面Model位於org.springframework.ui包中。
JPA 相關注解
@Repository
@Repository 將類標記為資料訪問物件 (DAO)。此類負責對資料庫執行 CRUD 操作。
@Entity
@Entity 將類標記為 JPA 實體。
@Id
@Id 指定實體的主鍵。
@GeneratedValue
@GeneratedValue 指定如何生成主鍵。
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column
Column 將欄位對映到資料庫列。
@Transactional
@Transactional 將方法或類標記為事務性的。它確保方法(或整個類)在事務上下文中執行。當您使用@Transactional標記方法時,Spring 會自動為該方法處理事務管理。當您使用@Transactional註釋方法時,Spring 會在方法開始執行之前啟動事務。如果方法成功完成(沒有異常),Spring 會提交事務(即儲存對資料庫的更改)。如果發生異常,Spring 會回滾事務。要使用@Transactional,您需要在 Spring Boot 應用程式中配置事務管理。將@EnableTransactionManagement新增到您的主應用程式類中。
其他重要註解
@Value
此註解用於為變數和方法引數分配預設值。它還可以用於從屬性檔案或環境變數注入屬性值。
@EnableCaching
@EnableCaching 啟用快取支援。當您將@EnableCaching新增到配置類時,Spring 會掃描應用程式以查詢使用快取相關注解(例如@Cacheable, @CachePut, @CacheEvict 或 @Caching)註釋的方法。
@EnableAsync
@EnableAsync 啟用非同步方法執行的支援。使用@Async註釋的方法將在單獨的執行緒中執行,允許呼叫者繼續執行而不必等待方法完成。