2021.7.7 关于spring注解# 系列文章目录
例如:day1,关于spring的几个注解文章目录
前言
提示:这里可以添加本文要记录的大概内容:
2021.7.7 创建每日一更系列,用来不断丰富自己
提示:以下是本篇文章正文内容,下面案例可供参考
1,@AutoConfigureBefore 和 @AutoConfigureAfter 是 spring-boot-autoconfigure 包下的注解
用法:
@AutoConfigureBefore(AAAA.class),或者@AutoConfigureBefore({AAAA.class,BBBB.class})
示例:
@AutoConfigureBefore(AAAA.class)
public class CCCC{
}
说明 CCCC 将会在 AAAA之前加载
@AutoConfigureAfter(AAAA.class),或者@AutoConfigureAfter({AAAA.class,BBBB.class})
实例:
@AutoConfigureAfter(AAAA.class)
public class CCCC{
}
说明 cccc 会在 aaaa之后加载
2,ValidationAutoConfiguration : springboot 自动配置
我的理解就是加上这个注解就可以 使用 validator 进行后端校验(使用JSR303的注解进行校验)。
确切的说是,首先要导入 validation的 jar包,然后是用户没有自己定义 javax.validation.validator 类型的bean的情况下。它允许我们在bean的方法参数或者方法上添加JSR303标准的validation注解。从而在进行bean的方法调用时可以对方法参数或者方法的返回值进行有效性校验。
使用方式:
@AutoConfigureBefore(ValidationAutoConfiguration.class)
概述:
ValidationAutoConfiguration 是 springboot 对应用中验证机制的自动配置,它主要向容器贡献了两个bean。
1,LocalValidatorFactoryBean defaultValidator
2,MethodValidationPostProcessor methodValidationPostProcessor
1,LocalValidatorFactoryBean defaultValidator
1,这就是一般意义上所说的 validator bean
2,仅在容器不存在类型为Validator 的 bean 时才定义,也就是说如果开发人员自己定义了 validator bean,则这里不定义
3,该定义确保容器中总是会有一个 validator bean
这个validator bean是基础性组件,应用中更上层的验证逻辑,比如基于JSR-303 注解的bean属性和方法参数的验证,都是使用该 validator bean组件。
2,MethodValidationPostProcessor methodValidationPostProcessor
1,这是一个 beanPostProcessor ,它会检测所有带注解@validated 的bean 定义,使用一个 带有 方法参数验证逻辑的 methodValidationPostProcessor 包裹这样的每一个bean (必要时会触发bean代理对象的创建)
2,仅在容器中不存在该类型的bean时才定义。
3,所使用的 validator bean 来自容器,如果开发人员未定义 validator bean ,则所使用的 validator bean 就是 本自动配置所定义的 validator bean。
注意:
validationAutoConfiguration 自动配置仅在检测到 classpath 上存在文件META-INF/services/javax.validation.spi.ValidationProvider和类 javax.validation.executable.ExecutableValidator 时才应用,因为这两个文件/类表明开发人员引入了相应的 Validation Provider jar包