Spring注解大全,加笔记

Spring注解

知识点1:@Configuration

名称

@Configuration

类型

类注解

位置

类定义上方

作用

设置该类为spring配置类

属性

value(默认):定义bean的id

知识点2:@Component等

名称

@Component/@Controller/@Service/@Repository

类型

类注解

位置

类定义上方

作用

设置该类为spring管理的bean

属性

value(默认):定义bean的id

知识点3:@ComponentScan

名称

@ComponentScan

类型

类注解

位置

类定义上方

作用

设置spring配置类扫描路径,用于加载使用注解格式定义的bean

属性

value(默认):扫描路径,此路径可以逐层向下扫描

  • 记住@Component、@Controller、@Service、@Repository这四个注解
  • applicationContext.xml中<context:component-san/>的作用是指定扫描包路径,注解为@ComponentScan
  • @Configuration标识该类为配置类,使用类替换applicationContext.xml文件

知识点4:@Scope

名称

@Scope

类型

类注解

位置

类定义上方

作用

设置该类创建对象的作用范围

可用于设置创建出的bean是否为单例对象

属性

value(默认):定义bean作用范围,

默认值singleton(单例),可选值prototype(非单例)

知识点5:@PostConstruct

名称

@PostConstruct

类型

方法注解

位置

方法上

作用

设置该方法为初始化方法

属性


知识点6:@PreDestroy

名称

@PreDestroy

类型

方法注解

位置

方法上

作用

设置该方法为销毁方法

属性


知识点7:@Autowired

名称

@Autowired

类型

属性注解 或 方法注解(了解) 或 方法形参注解(了解)

位置

属性定义上方 或 标准set方法上方 或 类set方法上方 或 方法形参前面

作用

为引用类型属性设置值

属性

required:true/false,定义该属性是否允许为null

知识点8:@Qualifier

名称

@Qualifier

类型

属性注解 或 方法注解(了解)

位置

属性定义上方 或 标准set方法上方 或 类set方法上方

作用

为引用类型属性指定注入的beanId

属性

value(默认):设置注入的beanId

知识点9:@Value

名称

@Value

类型

属性注解 或 方法注解(了解)

位置

属性定义上方 或 标准set方法上方 或 类set方法上方

作用

为 基本数据类型 或 字符串类型 属性设置值

属性

value(默认):要注入的属性值

知识点10:@PropertySource

名称

@PropertySource

类型

类注解

位置

类定义上方

作用

加载properties文件中的属性值

属性

value(默认):设置加载的properties文件对应的文件名或文件名组成的数组

知识点11:@Bean

名称

@Bean

类型

方法注解

位置

方法定义上方

作用

设置该方法的返回值作为spring管理的bean

属性

value(默认):定义bean的id

知识点12:@Import

名称

@Import

类型

类注解

位置

类定义上方

作用

导入配置类

属性

value(默认):定义导入的配置类类名,

当配置类有多个时使用数组格式一次性导入多个配置类

spring注解 使用有参数构造方法_spring

bean相关

spring注解 使用有参数构造方法_后端_02

依赖注入相关

spring注解 使用有参数构造方法_缓存_03

知识点13:@EnableAspectJAutoProxy

名称

@EnableAspectJAutoProxy

类型

配置类注解

位置

配置类定义上方

作用

开启注解格式AOP功能

知识点14:@Aspect

名称

@Aspect

类型

类注解

位置

切面类定义上方

作用

设置当前类为AOP切面类

知识点15:@Pointcut

名称

@Pointcut

类型

方法注解

位置

切入点方法定义上方

作用

设置切入点方法

属性

value(默认):切入点表达式

知识点16:@Before

名称

@Before

类型

方法注解

位置

通知方法定义上方

作用

设置当前通知方法与切入点之间的绑定关系,当前通知方法在原始切入点方法前运行

知识点18:@After

名称

@After

类型

方法注解

位置

通知方法定义上方

作用

设置当前通知方法与切入点之间的绑定关系,后置通知,在原始方法运行之后执行

知识点19:@Around

名称

@Around

类型

方法注解

位置

通知方法定义上方

作用

设置当前通知方法与切入点之间的绑定关系,环绕通知,在原始方法运行的前后执行

知识点20:@AfterReturning

名称

@AfterReturning

类型

方法注解

位置

通知方法定义上方

作用

设置当前通知方法与切入点之间的绑定关系,返回后通知,在原始方法执行完毕后运行,且原始方法执行过程中未出现异常现象

知识点21:@AfterThrowing

名称

@AfterThrowing

类型

方法注解

位置

通知方法定义上方

作用

设置当前通知方法与切入点之间的绑定关系,抛出异常后通知,在原始方法执行过程中出现异常后运行

知识点22:@EnableTransactionManagement

名称

@EnableTransactionManagement

类型

配置类注解

位置

配置类定义上方

作用

设置当前Spring环境中开启注解式事务支持

知识点23:@Transactional

名称

@Transactional

类型

接口注解 类注解 方法注解

位置

业务层接口上方 业务层实现类上方 业务方法上方

作用

为当前业务层方法添加事务(如果设置在类或接口上方则类或接口中所有方法均添加事务)

spring注解 使用有参数构造方法_spring注解 使用有参数构造方法_04

知识点24:@CrossOrigin

名称

@CrossOrigin

类型

类注解

位置

业务层Controller上方

作用

解决跨域问题

SpringMvc注解

知识点1:@Controller

名称

@Controller

类型

类注解

位置

SpringMVC控制器类定义上方

作用

设定SpringMVC的核心控制器bean

知识点2:@RequestMapping

名称

@RequestMapping

类型

类注解或方法注解

位置

SpringMVC控制器类或方法定义上方

作用

设置当前控制器方法请求访问路径

相关属性

value(默认),请求访问路径

知识点3:@ResponseBody

名称

@ResponseBody

类型

类注解或方法注解

位置

SpringMVC控制器类或方法定义上方

作用

设置当前控制器方法响应内容为当前返回值,无需解析

知识点4:@RequestParam

名称

@RequestParam

类型

形参注解

位置

SpringMVC控制器方法形参定义前面

作用

绑定请求参数与处理器方法形参间的关系

相关参数

required:是否为必传参数

defaultValue:参数默认值

知识点5:@EnableWebMvc

名称

@EnableWebMvc

类型

配置类注解

位置

SpringMVC配置类定义上方

作用

开启SpringMVC多项辅助功能

@RequestBody与@RequestParam区别

  • 区别
  • @RequestParam用于接收url地址传参,表单传参【application/x-www-form-urlencoded】
  • @RequestBody用于接收json数据【application/json】
  • 应用
  • 后期开发中,发送json格式数据为主,@RequestBody应用较广
  • 如果发送非json格式数据,选用@RequestParam接收请求参数

知识点6:@DateTimeFormat

名称

@DateTimeFormat

类型

形参注解

位置

SpringMVC控制器方法形参前面

作用

设定日期时间型数据格式

相关属性

pattern:指定日期时间格式字符串

知识点7:@PathVariable

名称

@PathVariable

类型

形参注解

位置

SpringMVC控制器方法形参定义前面

作用

绑定路径参数与处理器方法形参间的关系,要求路径参数名与形参名一一对应

知识点8:@RestController

名称

@RestController

类型

类注解

位置

基于SpringMVC的RESTful开发控制器类定义上方

作用

设置当前控制器类为RESTful风格,

等同于@Controller与@ResponseBody两个注解组合功能

知识点9:@GetMapping @PostMapping @PutMapping @DeleteMapping

名称

@GetMapping @PostMapping @PutMapping @DeleteMapping

类型

方法注解

位置

基于SpringMVC的RESTful开发控制器方法定义上方

作用

设置当前控制器方法请求访问路径与请求动作,每种对应一个请求动作,

例如@GetMapping对应GET请求

相关属性

value(默认):请求访问路径

知识点11:@ControllerAdvice

名称

@ControllerAdvice

类型

类注解

位置

Rest风格开发的控制器增强类定义上方

作用

为Rest风格开发的控制器类做增强

知识点10:@RestControllerAdvice

名称

@RestControllerAdvice

类型

类注解

位置

这是一个增强的 Controller

作用

全局异常处理,全局数据绑定,全局数据预处理

知识点11:@ExceptionHandler

名称

@ExceptionHandler

类型

方法注解

位置

专用于异常处理的控制器方法上方

作用

设置指定异常的处理方案,功能等同于控制器方法,

出现异常后终止原始控制器执行,并转入当前方法执行

Lombok常见的注解有:

@Setter:为模型类的属性提供setter方法

@Getter:为模型类的属性提供getter方法

@ToString:为模型类的属性提供toString方法

@EqualsAndHashCode:为模型类的属性提供equals和hashcode方法

@Data:是个组合注解,包含上面的注解的功能

@NoArgsConstructor:提供一个无参构造函数

@AllArgsConstructor:提供一个包含所有参数的构造函数

Lombok的注解还有很多,上面标红的三个是比较常用的,其他的大家后期用到了,再去补充学习。

mybatisplus注解

知识点1:@TableField

名称

@TableField

类型

属性注解

位置

模型类属性定义上方

作用

设置当前属性对应的数据库表中的字段关系

相关属性

value(默认):设置数据库表字段名称

exist:设置属性在数据库表字段中是否存在,默认为true,此属性不能与value合并使用

select:设置属性是否参与查询,此属性与select()映射配置不冲突

知识点2:@TableName

名称

@TableName

类型

类注解

位置

模型类定义上方

作用

设置当前类对应于数据库表关系

相关属性

value(默认):设置数据库表名称

知识点3:@TableLogic

名称

@TableLogic

类型

属性注解

位置

模型类中用于表示删除字段的属性定义上方

作用

标识该字段为进行逻辑删除的字段

相关属性

value:逻辑未删除值

delval:逻辑删除值

知识点4:@TableId

名称

@TableId

类型

属性注解

位置

模型类中用于表示主键的属性定义上方

作用

设置当前类中主键属性的生成策略

相关属性

value(默认):设置数据库表主键名称

type:设置主键属性的生成策略,值查照IdType的枚举值

知识点5:@MapperScan

名称

@MapperScan

类型

类注解

位置

模型类定义上方

作用

扫描mapper包下的全部mapper接口

相关属性

value(默认):设置数据库表主键名称

SpringBoot注解

知识点1:@SpringBootApplication

名称

@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)

类型

启动类注解

位置

定义启动类上方

作用

默认不去加载数据库配置

相关属性

exclude = DataSourceAutoConfiguration.class

知识点4:@CrossOrigin

名称

@CrossOrigin

类型

类注解

位置

Controller类上方

作用

解决跨域问题

相关属性

Redis注解

知识点1:@Cacheable

名称

@Cacheable

类型

方法注解

位置

用在需要使用缓存的Controller接口上方

作用

根据方法对其返回结果进行缓存,下次请求时,如果缓存存在,则直接读取缓存数据返回;如果缓存不存在,则执行方法,并把返回的结果存入缓存中。一般用在查询方法上。

value

value(默认):缓存名,必填,它指定了你的缓存存放在哪块命名空间

cacheNames

与 value 差不多,二选一即可

key

可选属性,可以使用 SpEL 标签自定义缓存的key

知识点2:@CachePut

名称

@CachePut

类型

方法注解

位置

用在需要使用缓存的Controller接口上方

作用

使用该注解标志的方法,每次都会执行,并将结果存入指定的缓存中。其他方法可以直接从响应的缓存中读取缓存数据,而不需要再去查询数据库。一般用在新增方法上。

value

缓存名,必填,它指定了你的缓存存放在哪块命名空间

cacheNames

与 value 差不多,二选一即可

key

可选属性,可以使用 SpEL 标签自定义缓存的key

知识点3:@CacheEvict

名称

@CachePut

类型

方法注解

位置

用在需要使用缓存的Controller接口上方

作用

使用该注解标志的方法,会清空指定的缓存。一般用在更新或者删除方法上

value

缓存名,必填,它指定了你的缓存存放在哪块命名空间

cacheNames

与 value 差不多,二选一即可

key

可选属性,可以使用 SpEL 标签自定义缓存的key

allEntries

是否清空所有缓存,默认为 false。如果指定为 true,则方法调用后将立即清空所有的缓存

beforeInvocation

是否在方法执行前就清空,默认为 false。如果指定为 true,则在方法执行前就会清空缓存

Spring cloud 注解

Nacos注解

知识点1:@EnableDiscoveryClient

名称

@EnableDiscoveryClient

类型

启动类注解

位置

在客户端微服务启动类添加注解

作用

启动微服务Nacos注册中文

相关属性

知识点2:@EnableFeignClients

名称

@EnableDiscoveryClient

类型

调用端启动类注解

位置

在调用端微服务启动类添加注解

作用

调用端服务调用

相关属性

知识点2:@FeignClient(“service-vod”)

名称

@FeignClient(“service-vod”)

类型

调用类注解

位置

调用类类上

作用

指定调用服务名称

相关属性

value(默认):调用服务名称

知识点3:@RefreshScope

名称

@RefreshScope

类型

nacos热部署注解

位置

类上

作用

nacos统一配置,配置类注解

相关属性