为了账号安全,请及时绑定邮箱和手机立即绑定

@NotNull 不会一直使用 MethodValidationPostProcessor 运行

@NotNull 不会一直使用 MethodValidationPostProcessor 运行

慕斯王 2023-04-13 15:45:40
我尝试将 javax.validation.constraints.NotNull 与 org.springframework.validation.beanvalidation.MethodValidationPostProcessor.MethodValidationPostProcessor 一起使用,但未在同一类中按预期运行。拜托,你能告诉我为什么吗?方法验证配置类:@Configuration@ComponentScan({ "com.mypackage" })public class MethodValidationConfig {    @Bean    public MethodValidationPostProcessor methodValidationPostProcessor() {        return new MethodValidationPostProcessor();    }}验证实用程序类:@Component@Validated@Slf4jpublic class ValidationUtils {    public void test1(@NotNull String[] test) {        if(test == null) {            log.error("Test is null!!!");        }    }    public void test2() {        test1(null);    }}测试应用类:@EnableAsync@EnableTransactionManagement@SpringBootApplication@Slf4jpublic class TestApplication {    public static void main(String[] args) {        ConfigurableApplicationContext context = SpringApplication.run(TestApplication.class, args);        ValidationUtils validationUtils = context.getBean(ValidationUtils.class);        try {            validationUtils.test1(null);        } catch (Exception e) {            log.info("OK");        }        try {            validationUtils.test2();        } catch (Exception e) {            log.info("OK");        }    }}com.mypackage.TestApplication:好的 com.mypackage.validationUtils:测试为空!!
查看完整描述

1 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

我假设发生以下情况:当您调用 test1() 时,代理拦截并进行验证。当您调用 test2() 时,它只是将调用委托给实际对象,其中不涉及代理。

查看完整回答
反对 回复 2023-04-13
  • 1 回答
  • 0 关注
  • 116 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信