Spring Boot 備忘單
Spring Boot 備忘單
註解
Annotation | Description | Example |
---|---|---|
@SpringBootApplication | Marks a class as a Spring Boot application. Enables auto-configuration and component scanning. | @SpringBootApplication |
@RestController | Indicates that a class provides RESTful endpoints. It combines @Controller and @ResponseBody annotations. | @RestController |
@RequestMapping | Maps HTTP requests to handler methods of RESTful controllers. | @RequestMapping("/api") |
@Autowired | Injects dependencies into a Spring bean. It can be used for constructor, setter, or field injection. | @Autowired private MyService myService; |
@Component | Indicates that a class is a Spring-managed component. It is automatically detected during component scanning. | @Component |
@Repository | Marks a class as a Spring Data repository. It handles data access and persistence logic. | @Repository |
@Service | Marks a class as a service component in the business layer. It is used to separate business logic from presentation logic. | @Service |
@Configuration | Indicates that a class provides bean definitions. It is used along with @bean to define beans in Java-based configuration. | @Configuration |
@Value | Injects values from properties files or environment variables into Spring beans. | @Value("${my.property}") private String property; |
控制流程
- 初始化:Spring Boot 首先載入應用程式屬性和自動配置 bean。
- 元件掃描:Spring 掃描控制器、服務和儲存庫等元件。
- Bean 建立:Spring 建立 Bean 並使用依賴注入解析依賴關係。
- 請求處理:傳入的 HTTP 請求根據請求對應對應到控制器方法。
- 執行:控制器方法處理請求、與服務互動並回傳回應。
- 回應渲染:Spring 將方法回傳值轉換為適當的 HTTP 回應(例如 JSON)。
推薦的資料夾結構
src
├──主要
│ ├── java
│ │ └── com
│ │ └── 例子
│ │ ├── 控制器
│ │ │ └──MyController.java
│ │ ├── 服務
│ │ │ └──MyService.java
│ │ └── Application.java
│ └── 資源
│ ├── application.properties
│ └── 模板
│ └──index.html
└── 測試
└── java
└── com
└── 例子
└── 控制器
└── MyControllerTest.java
Spring Boot 備忘單的錯誤處理
錯誤處理是建立健全應用程式的關鍵方面。 Spring Boot 提供了多種優雅處理錯誤和異常的機制,確保流暢的使用者體驗。
錯誤類型
- 客戶端錯誤:無效客戶端請求導致的錯誤,例如 400 Bad Request 或 404 Not Found。
- 伺服器錯誤:伺服器端發生的錯誤,例如500內部伺服器錯誤。
- 驗證錯誤:由於輸入無效或資料驗證失敗而導致的錯誤。
錯誤處理機制
1. 控制者建議
- @ControllerAdvice:用於在 Spring MVC 中定義全域異常處理程序的註解。
- @ExceptionHandler:用於處理控制器建議中的特定例外的註解。
- 範例:
@ControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(MyException.class) public ResponseEntity<ErrorResponse> handleMyException(MyException ex) { ErrorResponse response = new ErrorResponse("My error message"); return new ResponseEntity<>(response, HttpStatus.BAD_REQUEST); } @ExceptionHandler(Exception.class) public ResponseEntity<ErrorResponse> handleException(Exception ex) { ErrorResponse response = new ErrorResponse("Internal server error"); return new ResponseEntity<>(response, HttpStatus.INTERNAL_SERVER_ERROR); } }
回應實體異常處理程序
- ResponseEntityExceptionHandler:處理常見 Spring MVC 異常的基底類別。
- 重寫:重寫handleMethodArgumentNotValid、handleHttpMessageNotReadable等方法
- 範例:
@ControllerAdvice public class CustomExceptionHandler extends ResponseEntityExceptionHandler { @Override protected ResponseEntity<Object> handleMethodArgumentNotValid( MethodArgumentNotValidException ex, HttpHeaders headers, HttpStatus status, WebRequest request) { ErrorResponse response = new ErrorResponse("Validation failed"); return new ResponseEntity<>(response, HttpStatus.BAD_REQUEST); } // Other overrides for handling specific exceptions
3. 錯誤屬性
- ErrorAttributes:用於自訂錯誤回應內容和格式的介面。
- DefaultErrorAttributes:Spring Boot 提供的預設實作。
@Component public class CustomErrorAttributes extends DefaultErrorAttributes { @Override public Map<String, Object> getErrorAttributes(WebRequest webRequest, boolean includeStackTrace) { Map<String, Object> errorAttributes = super.getErrorAttributes(webRequest, includeStackTrace); errorAttributes.put("customAttribute", "Custom value"); return errorAttributes; } }
使用屬性文件
- application.properties:儲存應用程式範圍的屬性,例如伺服器連接埠、資料庫 URL 等
- 自訂屬性檔:為不同環境定義自訂屬性檔(例如application-dev.properties)。
- 存取屬性:使用@Value註解或Spring的Environment API存取屬性。
建築工程
- Maven:執行 mvn clean install 來建置專案並產生可執行 JAR。
- Gradle:執行 ./gradlew build 來建置專案並產生可執行 JAR。
附加主題
- Spring Boot Starters:使用 starters 為專案新增依賴項和自動配置。
- 日誌記錄:使用 Logback、Log4j 或 Java Util Logging 設定日誌記錄。
- 錯誤處理:使用@ControllerAdvice實現全域異常處理。
- 測試:使用 JUnit、Mockito 和 SpringBootTest 編寫單元測試和整合測試。
以上是Spring Boot 備忘單的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

公司安全軟件導致部分應用無法正常運行的排查與解決方法許多公司為了保障內部網絡安全,會部署安全軟件。 ...

將姓名轉換為數字以實現排序的解決方案在許多應用場景中,用戶可能需要在群組中進行排序,尤其是在一個用...

系統對接中的字段映射處理在進行系統對接時,常常會遇到一個棘手的問題:如何將A系統的接口字段有效地映�...

在使用MyBatis-Plus或其他ORM框架進行數據庫操作時,經常需要根據實體類的屬性名構造查詢條件。如果每次都手動...

在使用IntelliJIDEAUltimate版本啟動Spring...

Java對象與數組的轉換:深入探討強制類型轉換的風險與正確方法很多Java初學者會遇到將一個對象轉換成數組的�...

電商平台SKU和SPU表設計詳解本文將探討電商平台中SKU和SPU的數據庫設計問題,特別是如何處理用戶自定義銷售屬...

Redis緩存方案如何實現產品排行榜列表的需求?在開發過程中,我們常常需要處理排行榜的需求,例如展示一個�...
