Skip to Content

Boot

Containner

  • @Componect
    • 标记一个类为 Spring 容器管理的组件,表示该类是一个可被 Spring 管理的 Bean,从而实现组件的自动发现和管理
  • @Respository
    • 标记一个类为 Spring 管理的数据访问组件,表示该类负责与数据库或其他持久化存储进行交互
  • @Bean
    • 用于标识一个方法,该方法返回一个对象,该对象将被 Spring 容器识别为一个 Bean。
  • @Autowired
    • 用于自动装配依赖,即根据类型或名称自动将 Spring 容器中的 Bean 注入到目标对象中
  • @Primary
    • 用于标记一个 Bean 作为在多个同类型的 Bean 候选中进行自动装配时的首选 Bean
  • @Resource("name")
    • 通过指定 Bean 的名称,将目标对象与 Spring 容器中名称匹配的 Bean 进行自动装配
  • @Qualifier("value")
    • 通常与 @Autowired 一起使用,用于在按类型匹配到多个候选 Bean 的情况下,进一步按名称指定要注入的 Bean
  • @PostConstruct
    • 在对象初始化完成后执行,确保在依赖注入后进行额外的初始化工作

Config

  • @SpringBootApplication
    • 组合注解
      • @Configuration
      • @EnableAutoConfiguration
      • @ComponentScan
  • @Configuration
    • 声明一个类为 Spring 的配置类,类似于 Spring XML 配置文件
  • @EnableAutoConfiguration
    • 启用 Spring Boot 的自动配置机制
  • @ComponentScan
    • 指定 Spring 容器扫描的包路径,以便自动发现和注册 Spring 组件
  • @Value
    • 将配置文件中的值注入到 Java 类的字段中
  • @ConfigurationProperties
    • 将配置文件中的属性值自动映射到 Java 类的字段上,实现配置的集中管理和类型安全

Controller

  • @RestController
    • 组合注解
      • @Controller
      • @ResponseBody
  • @Controller
    • 标记一个类为 Spring MVC 的控制器,表示该类负责处理客户端的 HTTP 请求并生成响应
  • @ResponseBody
    • 用于将控制器方法的返回值直接作为 HTTP 响应体返回给客户端,而不是通过视图解析器进行视图渲染。
  • @RequestMapping
    • 将 HTTP 请求映射到控制器
    • 可以指定请求的路径、HTTP 方法、参数条件、请求头条件、内容类型条件
      • value 属性指定了请求的路径
      • produces 属性用于指定控制器方法所返回响应的 MIME 内容类型
  • @GetMapping
    • 映射 HTTP GET 请求
  • @PostMapping
    • 映射 HTTP POST 请求
  • @PutMapping
    • 映射 HTTP PUT 请求
  • @DeleteMapping
    • 映射 HTTP DELETE 请求
  • @RequestParam
    • 将 HTTP 请求中的查询参数或表单参数绑定到控制器方法的参数上
      • value:指定请求参数的名称
      • required:表示参数是否必须存在, 默认值为 true
      • defaultValue:参数为空时使用的默认值
  • @RequestBody
    • 将请求 Body 转换为 Java 对象,绑定 HTTP 请求中的请求体到方法参数上
  • @DateTimeFormat
    • 将请求参数或表单数据中的日期字符串解析为 Java 的日期对象
  • @PathVariable
    • 将 URL 中的一部分作为参数传递给控制器方法

Service

  • @Service
    • 标记一个类为服务层组件,表示该类负责封装业务逻辑,提供服务功能

Test

  • @SpringBootTest
    • 启动完整的 Spring 应用上下文,并加载配置文件,以便于测试
  • @Test
    • 标记一个方法为测试方法,JUnit 框架在运行测试时会自动识别并执行这些方法
  • @BeforeAll
    • 标记测试类中的方法,以便在所有测试方法执行之前执行某些初始化操作
  • @AfterAll
    • 标记测试类中的方法,以便在所有测试方法执行之后执行某些清理操作

Verify

  • @Valid
    • Spring 会自动对该对象进行验证,确保它符合所有定义的约束条件
  • @Validated
    • 扩展了 @Valid 的功能,支持分组验证和方法级别的校验
  • @NotBlank
    • 用于校验字符串是否为空或仅包含空白字符
  • @Size
    • 用于校验集合、字符串或数组的大小是否在指定范围内
  • @Email
    • 用于校验字段是否符合标准的电子邮件格式
  • @Pattern
    • 用于使用正则表达式对字段的值进行校验
  • @Min
    • 校验数字元素的最小值,确保其值大于等于指定的最小值
  • @Max
    • 校验数字元素的最大值,确保其值小于等于指定的最大值
  • @DecimalMin
    • 校验 BigDecimal 类型字段的最小值,确保其值大于等于指定的最小值
  • `@DecimalMax
    • 校验 BigDecimal 类型字段的最大值,确保其值小于等于指定的最大值

Exception

  • @ExceptionHandler
    • 在控制器类中来处理特定类型的异常
  • @RestContrllorAdvice
    • 组合注解,统一处理应用中的异常并返回统一的错误响应
      • @ControllerAdvice
      • @ResponseBody
  • @ControllerAdvice
    • 定义全局异常处理器
  • @ResponseStatus
    • 为异常处理方法指定一个特定的 HTTP 状态码

Cloud

  • @EnableDiscoveryClient
    • 服务注册:将当前微服务注册到服务注册中心,使得其他服务可以通过服务名发现并调用该服务
    • 服务发现:使当前服务能够发现其他已注册到服务注册中心的服务,从而实现服务之间的相互调用
  • @EnableFeignClients
    • 启用 Feign 客户端的功能,允许应用通过 @FeignClient 注解定义的接口来调用远程服务
    • 扫描类路径中所有标注了 @FeignClient 注解的接口,并为每个接口生成一个 Feign 客户端代理实例

Plugins

Swagger

  • @EnableSwagger2WebMvc
    • 开启 Swagger2 的 API 文档生成功能,并提供一个 Web 界面来展示和测试这些文档
  • @Api
    • 标记一个接口类,并为其提供额外的描述信息。这些信息会被 Swagger 用于生成 API 文档。
  • ApiOperation
    • 用于描述 RESTful API 的操作方法
  • @ApiModel
    • 为模型类提供一个简洁的描述,说明该类所代表的含义、作用和上下文等信息
  • @ApiModelProperty
    • 用于描述模型类中的属性信息

Lombok

  • @Data
    • 组合注解
      • @Getter
      • @Setter
      • @EqualsAndHashCode
      • @NoArgsConstructor
      • @AllArgsConstructor
  • @Getter
    • 自动生成指定字段的 getter 方法
  • @Setter
    • 自动生成指定字段的 setter 方法
  • @EqualsAndHashCode
    • 自动生成 equals()hashCode() 方法
  • @NoArgsConstructor
    • 自动生成一个 无参构造器
  • @AllArgsConstructor
    • 自动生成一个 包含所有字段的有参构造器
  • @Builder
    • 为当前类自动生成一个静态内部构建器类,允许通过链式调用的方式设置对象属性

MyBatis

  • @Mapper

    • 标记一个接口,表明该接口是一个 MyBatis 的 Mapper 接口
  • @Select

  • @Insert

  • @Update

  • @Delete

  • @Options

  • @Param

  • @TableName

  • @TableId

  • @TableField

  • @TableLogic

  • @Version

un

  • @Conditional

  • @ConditionalOnClass

  • @ConditionalOnMissingClass

  • @ConditionalOnBean

  • @ConditionalOnMissingBean

  • @ConditionalOnProperty

  • @ConditionalOnExpression

  • @Slf4j

  • @PreAuthorize

  • @Secured

  • @CrossOrigin

  • @Constraint

  • @Target

  • @Retention

  • @interface

  • @EnableTransactionManagement

  • @Transactional

  • @WebFilter

  • @Aspect

  • @Pointcut

  • @Advice

  • @Before

  • @After

  • @AfterReturning

  • @AfterThrowing

  • @Around

  • @EnableBinding

    • 绑定到消息中间件中的特定队列或主题,启用消息通道,并通过这些通道将消息发送到消息中间件
Last updated on