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
