SpringBoot中常用注解

SpringBoot中常用注解

  • 1. Bean处理
    • 1.1 依赖注入
      • 1.1.1 @Autowired
    • 1.2 标注类被Spring容器管理
      • 1.2.1 @Component
      • 1.2.2 @Respository
      • 1.2.3 @Service
      • 1.2.4 @Controller
      • 1.2.5 @RestController
      • 1.2.6 @Configuration
      • 1.2.7 @Scope
  • 2. HTTP请求
    • 2.1 @GetMapping
    • 2.2 @PostMapping
    • 2.3 @PutMapping
    • 2.4 @DeleteMapping
  • 3. 前后端参数传递
    • 3.1 @RequestParam
    • 3.2 @PathVariable
    • 3.3 @RequestBody
    • 3.4 @ResponseBody
  • 4. 读取配置
    • 4.1 @Value
    • 4.2 @ConfigurationProperties
    • 4.3 @PropertySource
  • 5. 参数校验
    • 5.1 Bean字段验证注解
      • 5.1.1 @NotEmpty
      • 5.1.2 @NotBlank
      • 5.1.3 @Null
      • 5.1.4 @NotNull
      • 5.1.5 @AssertTrue
      • 5.1.6 @AssertFalse
      • 5.1.7 @Pattern(regex=,flag=)
      • 5.1.8 @Email
      • 5.1.9 @Min(value)
      • 5.1.10 @Max(value)
      • 5.1.11 @DecimalMin(value)
      • 5.1.12 @DecimalMax(value)
      • 5.1.13 @Size(max=, min=)
      • 5.1.14 @Digits (integer, fraction)
      • 5.1.15 @Past
      • 5.1.16 @Future
    • 5.2 @Valid注解
    • 5.3 @Validated注解
  • 6. 统一异常处理
    • 6.1 @ControllerAdvice
    • 6.2 @ExceptionHandler
  • 7. JPA数据持久化
    • 7.1 @Entity
    • 7.2 @Table
    • 7.3 @Id
    • 7.4 @GerneratedValue
      • 7.4.1 @GenerationType.TABLE
      • 7.4.2 @GenerationType.SEQUENCE
      • 7.4.3 @GenerationType.IDENTITY
      • 7.4.4 @GenerationType.AUTO
    • 7.5 @Column
    • 7.6 @Transient
    • 7.7 @Lob
    • 7.8 @Enumerated
    • 7.9 @Modifying
    • 7.10 @Transactional
      • 7.10.1 作用于类上
      • 7.10.2 作用于方法上
  • 8. JSON格式处理
    • 8.1 @JsonIgnorePropties
    • 8.2 @JsonIgnore
    • 8.3 @JsonFormat
    • 8.4 @JsonUnwrapped
  • 9. 测试处理
    • 9.1 @ActiveProfiles
    • 9.2 @Test
    • 9.3 @Transactional
    • 9.4 @WithMockUser
  • 10. 配置启动
    • 10.1 @SpringBootApplication
    • 10.2 @Configuration
    • 10.3 @EnableAutoConfiguration
    • 10.4 @ComponentScan
    • 10.5 @Conditional
      • 10.5.1 @ConditionalOnBean
      • 10.5.2 @ConditionalOnMissingBean
      • 10.5.3 @ConditionalOnClass
      • 10.5.4 @ConditionalOnMissingClass
      • 10.5.5 @ConditionalOnExpression
      • 10.5.6 @ConditionalOnJava
      • 10.5.7 @ConditionalOnJndi
      • 10.5.8 @ConditionalOnProperty
      • 10.5.9 @ConditionalOnResource
      • 10.5.10 @ConditionalOnWebApplication
      • 10.5.11 @ConditionalOnNotWebApplication

1. Bean处理

1.1 依赖注入

1.1.1 @Autowired

用法:用在属性、方法上。

含义:byType方式完成自动装配,把配置好的Bean拿来用,完成属性、方法的组装。当加上(required=false)时,就算找不到bean也不报错。

1.2 标注类被Spring容器管理

声明哪些bean是需要被Spring容器管理的。

1.2.1 @Component

通用注解,泛指组件,当组件不好归类的时候,我们可以使用这个注解进行。

1.2.2 @Respository

用于数据持久层,经常标记到DAO类中。

1.2.3 @Service

用于服务层,经常标注到Service类上,需要注入DAO层。

1.2.4 @Controller

MVC控制层Bean,常需要注入Service层。

1.2.5 @RestController

@RestController注解,它继承自@Controller注解。4.0之前的版本,Spring MVC的组件都使用@Controller来标识当前类是一个控制器servlet。使用这个特性,我们可以开发REST服务的时候直接使用@RestController。

1.2.6 @Configuration

一般用来声明配置类。

1.2.7 @Scope

声明Spring Bean的作用域。
包括singleton、prototype、request、session。

2. HTTP请求

2.1 @GetMapping

GET请求,从服务器获取特定资源。

2.2 @PostMapping

POST请求,在服务器上创建一个新的资源。

2.3 @PutMapping

PUT请求,更新服务器上的资源。

2.4 @DeleteMapping

DELETE请求,从服务器删除特定的资源。

3. 前后端参数传递

3.1 @RequestParam

用在方法的参数前面,获取请求中表单类型的key=value格式的数据。

3.2 @PathVariable

路径变量,参数与大括号里的名字一样要相同。

3.3 @RequestBody

获取请求body中的数据,常用于搭配@PostMapping请求来提交对象数据。

3.4 @ResponseBody

表示该方法的返回结果直接写入HTTP response body中,格式为json。

4. 读取配置

4.1 @Value

直接读取各种配置源的属性名。

4.2 @ConfigurationProperties

读取配置信息并与bean绑定。

4.3 @PropertySource

指定加载自定义的配置文件。

5. 参数校验

这些注解的实现都是通过Hibernate Validator来实现的。

从Boot 2.3 开始,我们还需要显式地添加spring-boot-starter-validation依赖项。

5.1 Bean字段验证注解

这些注解都是加在Bean上面的。

5.1.1 @NotEmpty

5.1.2 @NotBlank

5.1.3 @Null

5.1.4 @NotNull

5.1.5 @AssertTrue

5.1.6 @AssertFalse

5.1.7 @Pattern(regex=,flag=)

5.1.8 @Email

5.1.9 @Min(value)

5.1.10 @Max(value)

5.1.11 @DecimalMin(value)

5.1.12 @DecimalMax(value)

5.1.13 @Size(max=, min=)

5.1.14 @Digits (integer, fraction)

5.1.15 @Past

5.1.16 @Future

5.2 @Valid注解

用于标注验证对象的级联属性。

5.3 @Validated注解

Spring提供的注解,于SpringMVC一起使用,标注方法参数需要检查。

6. 统一异常处理

6.1 @ControllerAdvice

注解定义全局异常处理类,包含@Component,所以可以被Spring扫描到。

6.2 @ExceptionHandler

注解声明异常处理方法,表示遇到这个异常,就执行标注的方法。

7. JPA数据持久化

JPA全称是Java Persistence API,是一组用于将数据存入数据库的类和方法的集合。

7.1 @Entity

声明数据库实体类。

7.2 @Table

设置表名。

7.3 @Id

声明一个字段为主键。

7.4 @GerneratedValue

声明主键的生成策略。

7.4.1 @GenerationType.TABLE

持久化引擎通过关系数据库的一张特定的表格来生成主键。

7.4.2 @GenerationType.SEQUENCE

随机序列。

7.4.3 @GenerationType.IDENTITY

主键自增长。

7.4.4 @GenerationType.AUTO

持久化引擎会根据数据库在以上三种主键生成策略中选择。

7.5 @Column

声明字段,经常用于属性名和表字段的映射。

7.6 @Transient

指定不需要持久化的字段。

7.7 @Lob

声明某个字段为大字段。

7.8 @Enumerated

声明枚举类型的字段。

7.9 @Modifying

加在DAO方法上,提示是修改操作。

7.10 @Transactional

7.10.1 作用于类上

表示所有该类的public方法都配置相同的事务属性信息。

7.10.2 作用于方法上

当类配置了@Transactional, 方法也配置了@Transactional, 方法的事务会覆盖类的事务配置信息。

8. JSON格式处理

8.1 @JsonIgnorePropties

作用在类上用于过滤掉特定字段不返回或者不解析。

8.2 @JsonIgnore

一般用于属性上,作用和上面的@JsonIgnorePropties一样。

8.3 @JsonFormat

用来格式化json数据。

8.4 @JsonUnwrapped

扁平化对象。

9. 测试处理

9.1 @ActiveProfiles

常作用于测试类上,用于声明生效的Spring配置文件。

9.2 @Test

声明一个方法为测试方法。

9.3 @Transactional

被声明的测试方法的数据会回滚,避免污染测试数据。

9.4 @WithMockUser

Spring Security 提供的,用来模拟一个真实用户,并且可以赋予权限。

10. 配置启动

10.1 @SpringBootApplication

等价于以默认属性使用@Configuration、@EnableAutoConfiguration、@ComponentScan

10.2 @Configuration

Spring Boot提倡基于Java的配置,相当于你之前在xml中配置bean。

10.3 @EnableAutoConfiguration

类级别的注解,这个注解告诉Spring Boot根据添加的jar依赖猜测你想如何配置Spring。

10.4 @ComponentScan

标注哪些路径下的类需要被Spring扫描。

10.5 @Conditional

10.5.1 @ConditionalOnBean

配置了某个特定的Bean。

10.5.2 @ConditionalOnMissingBean

没有配置特定的Bean。

10.5.3 @ConditionalOnClass

Classpath里有指定的类。

10.5.4 @ConditionalOnMissingClass

Classpath里没有指定的类。

10.5.5 @ConditionalOnExpression

给定的SpEL表达式计算结果为true。

10.5.6 @ConditionalOnJava

Java的版本匹配特定值或者一个范围值。

10.5.7 @ConditionalOnJndi

参数中给定的JNDI位置必须存在一个,如果没有给参数,则要有JNDI InitialContext。

10.5.8 @ConditionalOnProperty

指定的配置属性要有一个明确的值。

10.5.9 @ConditionalOnResource

Classpath里没有指定的资源。

10.5.10 @ConditionalOnWebApplication

这是一个Web应用程序。

10.5.11 @ConditionalOnNotWebApplication

这不是一个Web应用程序。

参考资料:一文掌握 Spring Boot 常用注解,保姆级整理,建议收藏!

你可能感兴趣的:(Java,SpringBoot,spring,boot,spring,java)