spring常见注解及其分类

251 阅读2分钟

2023年 1月 1日

我们这里说的spring中的常见注解,是广义上的spring,可以理解成spring,springmvc,springboot。这三个。相比大家对与常见注解还是很有了解的,但是不能准确的将这些注解归结于具体的框架中,比如知道一个注解,但是你不知道该注解属于谁,当面试官问起springmvc常见的注解时,你不清楚注解的分类的话,可能会说不属于springmvc的注解。所以我们这章就来整理下常见注解的分类。

Spring

1.事务相关

@EnableTransactionManagement

@Transactional

以上两个注解都是与事务相关的注解,@Transactional这个注解相比大家都很清楚,加在方法上,作用是给该方法增加事务。加载类上,就代表该类所有的方法都加了事务。

@EnableTransactionManagement这个注解大家可能就不熟悉了,这个注解的主要作用就是帮我们开启注解式事务。

2.Bean相关

@Order

用来控制多个Bean的顺序时,数字越小优先级越高。

3.切面相关

@EnableAspectJAutoProxy

这个注解会帮我们容器中注入一个Bean后置处理器,该bean后置处理器的作用就是帮我们生成代理对象,当一个bean在创建过程中,会在初始化后进行检查,是否需要生成代理对象,判断依据就是,看切点表达式是否能和该类中的方法进行匹配,如果匹配成功就创建代理对象,并将代理对象代替原始bean返回单例池中。如果发生循环依赖,会在实例化后就进行判断,并创建代理对象。

4.组件扫描与配置类

@Component

@Controller

@Service

@Repository

@ComponentScan

@Condition

这个注解可能会有同学误以为是spirngboot的,其实不是springboot的那些条件注解是基于这个注解进行扩展的。这个注解是属于spring的。

@Configuration

@Bean

@Import

@Lazy

@Lazy这个注解最重要的一个用法就是加在参数上或者成员变量上,会解决循环依赖问题。可以让依赖注入或者参数注入推迟执行,最开始会注入一个代理对象。

@PropertySource

读取配置文件信息,配合@Value使用

5.依赖注入

@Autowired

@Value

@Qualifier

说明下Resource是jdk自带的,不属于spring哦

SpringMVC

1.Mapping

@RequestMapping

2.Rest

@ResponseBody

@RequestBody

@ResController

3.统一处理

@ControllerAdvice

作用就是给所有控制器增强功能。

@ExceptionHandler

主要搭配@ControllerAdvice,作为全局异常处理器使用。

4.参数

@RequestParam

@RequestHeader

@PathVariable

@CookieValue

5.Ajax

@CrossOrigin

解决跨域问题,本质就是在响应头设置个东东

SpringBoot

1.Properties

@EnableConfigurationProperties

@ConfigurationProperties

2.Condition

@ConditionOnClass

@ConditionOnMissingClass

3.auto

@SpringBootApplication

@EnableAutoConfiguration

@SpringBootConfiguration