首頁 > Java > java教程 > Spring Boot 備忘單

Spring Boot 備忘單

Susan Sarandon
發布: 2024-11-26 00:37:10
原創
810 人瀏覽過

Spring Boot Cheat Sheet

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;

控制流程

  1. 初始化:Spring Boot 首先載入應用程式屬性和自動配置 bean。
  2. 元件掃描:Spring 掃描控制器、服務和儲存庫等元件。
  3. Bean 建立:Spring 建立 Bean 並使用依賴注入解析依賴關係。
  4. 請求處理:傳入的 HTTP 請求根據請求對應對應到控制器方法。
  5. 執行:控制器方法處理請求、與服務互動並回傳回應。
  6. 回應渲染: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中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板