Bootstrap

spring boot常用注解

1.Bean处理

1.1依赖注入

1.1.1 @Autowired

用法:用在属性、方法上

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

1.1.2 @Resource

同上,区别是通过by name自动装配,可定义neme

1.2标注类被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.7 @Configuration

一般用来声明配置类

1.2.8 @Scope

声明 Spring Bean 的作用域

singleton,prototype,request,session

2.HTTP请求

4种常见的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. 参数校验

5.1 Bean字段验证注解

@NotEmpty

@NotBlank

@Null

@NotNull

@AssertTrue

@AssertFalse

@Pattern(regex=,flag=)

@Email

@Min(value)

@Max(value)

@DecimalMin(value)

@DecimalMax(value)

@Size(max=, min=)

@Digits (integer, fraction)

@Past

@Future

5.2 @Valid

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

5.3 @Validated

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

6. 统一异常处理

6.1 @ControllerAdvice

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

6.2 @ExceptionHandler

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

7. JPA数据持久化

7.1 @Entity

声明数据库实体类

7.2 @Table

设置表名

7.3 @Id

声明一个字段为主键

7.4 @GeneratedValue

声明主键的生成策略

7.5 @Column

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

7.6 @Transactional

指定不需要持久化的字段

7.7 @Lob

声明某个字段为大字段

7.8 @Enumerated

声明枚举类型的字段

7.9 @Modifying

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

7.10 @Transactional

作用于方法上:当类配置了@Transactional,方法也配置了@Transactional,方法的事务会覆盖类的事务配置信息

作用于类上:表示所有该类的public 方法都配置相同的事务属性信息

8. JSON格式处理

8.1 @JsonIgnoreProperties

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

8.2 JsonIgnore

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

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应用程序

;