首页  >  文章  >  Java  >  Spring Boot 备忘单

Spring Boot 备忘单

Susan Sarandon
Susan Sarandon原创
2024-11-26 00:37:10765浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn