常見註解類別及原因
a) 核心配置類註解
-
@SpringBootApplication
- 用於標記啟動類,包含了核心配置。
- 原因:減少啟動配置程式碼,將多個註解合併為一個。
-
@Configuration
- 標記一個類為配置類,類似於傳統的 XML 配置檔案。
- 原因:更現代化和型別安全的配置方式。
-
@EnableAutoConfiguration
- 啟用 Spring Boot 的自動配置功能,根據依賴和配置動態載入元件。
- 原因:減少手動配置,按需載入。
b) 控制器相關注解
-
@Controller
- 用於定義處理 HTTP 請求的類。
- 原因:實現 MVC 模式中的控制器層邏輯。
-
@RestController
- 是
@Controller
和@ResponseBody
的組合,直接返回 JSON 或物件。 - 原因:更方便構建 REST API。
- 是
-
@RequestMapping
- 用於對映請求 URL 到方法上。
- 原因:定義路由邏輯和處理函式的入口。
-
@GetMapping
/@PostMapping
- 專用於處理特定 HTTP 方法的請求。
- 原因:簡化 RESTful API 的開發。
c) 依賴注入相關注解
-
@Autowired
- 自動裝配 Bean。
- 原因:替代 XML 配置的
<bean>
和手動注入程式碼。
-
@Component
- 標記一個類為 Spring 容器的 Bean。
- 原因:減少手動 Bean 定義。
-
@Service
/@Repository
- 是
@Component
的特殊化,用於標記業務層和持久層元件。 - 原因:語義化更清晰,便於區分不同的職責。
- 是
d) 資料訪問相關注解
-
@Transactional
- 宣告事務管理。
- 原因:簡化事務的啟用,便於跨方法和元件的事務一致性。
-
@Entity
- 定義一個 JPA 實體。
- 原因:將物件與資料庫表直接對映。
e) 配置屬性相關注解
-
@Value
- 從配置檔案讀取值。
- 原因:便於動態獲取外部配置。
-
@ConfigurationProperties
- 將配置檔案中的屬性對映為 Java 類。
- 原因:批次讀取和管理配置。