java - 没有 hibernate-validator 依赖的 Spring Boot 应用程序

标签 java spring spring-boot hibernate-validator

我正在尝试让 spring-boot(spring-boot-starter-web:1.3.5.RELEASE 和 spring-boot-starter-validation:1.3.5.RELEASE)在没有 hibernate validator 依赖的情况下工作。这些是我的选择:

  • 选项 1:使用默认的 OptionalValidatorFactoryBean。
  • 选项 2:查找其他一些 JSR 303 实现 - org.apache.bval:bval-jsr303 或其他任何东西。

  • 我尝试了选项 1,依赖注入(inject)忽略了这个设置并寻找 hibernate-validator 并失败:
    @Bean
    public org.springframework.validation.Validator validator() {
        return new OptionalValidatorFactoryBean();
    }
    

    使用选项 2,我将 jar 放在类路径上,并且依赖注入(inject)没有选择实现。

    最好有一个除 hibernate-validator 之外的工作 validator 流程,或者至少提供一个类似于选项 1 的虚拟验证。

    最佳答案

    如果您 选择选项1 ,

    Option 1: Use default OptionalValidatorFactoryBean.



    来自 OptionalValidatorFactoryBean 的 JavaDocs ,

    This is the actual class used by Spring's MVC configuration namespace, in case of the javax.validation API being present but no explicit Validator having been configured.



    确保 javax.validation API存在于您的类路径中。

    ==================================================== ===

    如果您 选择选项2 , 使用 Apache BVal而不是 hibernate validator

    Option 2: Find some other JSR 303 implementation - org.apache.bval:bval-jsr303 or anything else.


    <!-- Validator bean -->
    <bean id="validator"
        class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
        <property name="providerClass"
            value="org.apache.bval.jsr303.ApacheValidationProvider" />
    </bean>
    

    或使用 JavaConfig
    @Bean
    public LocalValidatorFactoryBean localValidatorFactoryBean() throws ClassNotFoundException {
        LocalValidatorFactoryBean validatorBean = new LocalValidatorFactoryBean();
        validatorBean.setProviderClass(org.apache.bval.jsr303.ApacheValidationProvider.class));
    
        return result;
    }
    

    关于java - 没有 hibernate-validator 依赖的 Spring Boot 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42030241/

    相关文章:

    Spring:在@RequestParam 中类型不匹配时处理错误

    spring-boot - gradle-如何在integarion测试之前启动spring boot服务器-使用Maven如此简单

    java - Spring Security 和 Oauth2 的误解

    java覆盖不工作

    java - Spring Cloud Stream 手动轮询器 Kafka

    java - Bash 单引号数组元素并使用空格连接

    java - 如何使用 Repository Hibernate 和 Pageable 与 Java Spring 进行参数搜索?

    java - Spring SOAP Web服务集成测试错误: no endpoint mapping found. SOAP服务本身正常工作,问题出在测试上

    java - 如何将我的自定义相机应用程序设置为默认应用程序?

    java - TCP_NODELAY 如何影响连续的 write() 调用?