无法使用Spring和Hibernate验证bean

无法使用Spring和Hibernate验证bean,spring,hibernate,maven,validation,Spring,Hibernate,Maven,Validation,下面是我们验证的bean的代码: import javax.validation.constraints.Email; import javax.validation.constraints.NotBlank; import javax.validation.constraints.Pattern; import java.io.Serializable; public class NewUserCompanyForm implements Serializable { private

下面是我们验证的bean的代码:

import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.io.Serializable;

public class NewUserCompanyForm implements Serializable {
    private static final long serialVersionUID = 6414340627544822204L;

    @Email(groups = ValidationGroup1.class)
    @NotBlank(groups = ValidationGroup1.class)
    private String userName;
    @NotBlank(groups = ValidationGroup1.class)
    private String password;
    @NotBlank(groups = ValidationGroup1.class)
    private String repeatedPassword;
    @NotBlank(groups = ValidationGroup1.class)
    private String companyName;

    @Pattern(regexp = "\\d\\d-\\d\\d\\d", groups = ValidationGroup2.class)
    private String postalCode;
    @Pattern(regexp = "\\p{L}*", groups = ValidationGroup2.class)
    private String city;
    @Pattern(regexp = "[-A-Za-z0-9 ,.]*", groups = ValidationGroup2.class)
    private String addressDetails;
    //didn't copied get/set methods

        public interface ValidationGroup1 {
        }

        public interface ValidationGroup2 {
        }
    }
配置类的一部分:

@Bean
public LocalValidatorFactoryBean localValidatorFactoryBean(){
    LocalValidatorFactoryBean localValidatorFactoryBean=new LocalValidatorFactoryBean();
    return localValidatorFactoryBean;
}
用于测试验证的类:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {SpringWebFlowConfiguration.class, WebConfiguration.class})
public class NewUserCompanyFormValidationTest {
    @Autowired
    @Qualifier("localValidatorFactoryBean")
    private LocalValidatorFactoryBean validator;
    @Autowired
    private MessageSource messageSource;

    @Test
    public void DependencyInjectionTest(){
        Assert.assertNotNull(validator);
    }

    @Test
    public void NewUserCompanyFormValidatingTest(){
        NewUserCompanyForm form1=new NewUserCompanyForm();
        form1.setPassword("");
        form1.setUserName("");
        form1.setRepeatedPassword("");
        Set<ConstraintViolation<NewUserCompanyForm>> volations1=validator.validate(form1,NewUserCompanyForm.ValidationGroup1.class);

    }
}
有pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <thymeleaf.spring.version>3.0.7.RC1</thymeleaf.spring.version>
        <thymeleaf.version>3.0.7.RELEASE</thymeleaf.version>
        <hibernate.validation.version>6.0.3.Final</hibernate.validation.version>
        <hibernate.version>5.2.11.Final</hibernate.version>
        <mysql.connector.java.version>6.0.6</mysql.connector.java.version>
        <spring.version>5.0.0.RELEASE</spring.version>
        <spring.session.version>1.3.1.RELEASE</spring.session.version>
        <spring.security.version>4.2.3.RELEASE</spring.security.version>
        <spring.webflow.version>2.4.6.RELEASE</spring.webflow.version>
        <spring.boot.test.version>2.0.0.M5</spring.boot.test.version>
        <common.codecs>1.10</common.codecs>
    </properties>

    <groupId>projectapp</groupId>
    <artifactId>app</artifactId>
    <version>1.0-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.7.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-test -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session</artifactId>
            <version>${spring.session.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.thymeleaf/thymeleaf-spring5 -->
        <dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf-spring5</artifactId>
            <version>${thymeleaf.spring.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>${hibernate.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.connector.java.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.thymeleaf/thymeleaf -->
        <dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf</artifactId>
            <version>${thymeleaf.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-orm -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.hibernate.javax.persistence/hibernate-jpa-2.1-api -->
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>${spring.security.version}</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate.javax.persistence</groupId>
            <artifactId>hibernate-jpa-2.1-api</artifactId>
            <version>1.0.0.Final</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>${common.codecs}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.webflow</groupId>
            <artifactId>spring-webflow</artifactId>
            <version>${spring.webflow.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/javax.validation/validation-api -->
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>2.0.0.Final</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/commons-validator/commons-validator -->
        <dependency>
            <groupId>commons-validator</groupId>
            <artifactId>commons-validator</artifactId>
            <version>1.6</version>
        </dependency>
    </dependencies>
    <repositories>
    </repositories>
</project>

4.0.0
1.8
1.8
3.0.7.RC1
3.0.7.1发布
6.0.3.1最终版本
5.2.11.最终版本
6.0.6
5.0.0.0发布
1.3.1.发布
4.2.3.1发布
2.4.6.1发布
2.0.0.M5
1.10
projectapp
应用程序
1.0-快照
org.springframework.boot
spring启动程序父级
1.5.7.1发布
org.springframework.boot
SpringBootStarterWeb
org.springframework.boot
spring引导启动器数据jpa
org.springframework.session
春季会话jdbc
org.springframework.boot
弹簧启动安全
org.springframework.boot
弹簧启动启动器验证
org.springframework.boot
弹簧起动试验
测试
org.springframework.session
春季会议
${spring.session.version}
org.thymeleaf
百里香
${thymeleaf.spring.version}
org.hibernate
冬眠核心
${hibernate.version}
mysql
mysql连接器java
${mysql.connector.java.version}
org.thymeleaf
百里香
${thymeleaf.version}
org.springframework
春季甲虫
${spring.version}
org.springframework
spring上下文
${spring.version}
org.springframework.security
spring安全网
${spring.security.version}
org.hibernate.javax.persistence
hibernate-jpa-2.1-api
1.0.0.1决赛
通用编解码器
通用编解码器
${common.codecs}
org.springframework.webflow
SpringWebFlow
${spring.webflow.version}
javax.validation
验证api
2.0.0.1决赛
通用验证器
通用验证器
1.6

我不知道发生了什么事。我尝试更改pom.xml中的一些依赖项,但每次都得到相同的结果。当人们将注释与变量的数据类型不匹配时,就会出现这种异常,但我觉得可以使用
@NotBlank

验证字符串您正在定义一个属性hibernate.valiation.version,但您没有在任何地方使用它。所以你可能没有使用你认为的版本。另外,请遵守Java命名约定。方法以小写字母开头。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <thymeleaf.spring.version>3.0.7.RC1</thymeleaf.spring.version>
        <thymeleaf.version>3.0.7.RELEASE</thymeleaf.version>
        <hibernate.validation.version>6.0.3.Final</hibernate.validation.version>
        <hibernate.version>5.2.11.Final</hibernate.version>
        <mysql.connector.java.version>6.0.6</mysql.connector.java.version>
        <spring.version>5.0.0.RELEASE</spring.version>
        <spring.session.version>1.3.1.RELEASE</spring.session.version>
        <spring.security.version>4.2.3.RELEASE</spring.security.version>
        <spring.webflow.version>2.4.6.RELEASE</spring.webflow.version>
        <spring.boot.test.version>2.0.0.M5</spring.boot.test.version>
        <common.codecs>1.10</common.codecs>
    </properties>

    <groupId>projectapp</groupId>
    <artifactId>app</artifactId>
    <version>1.0-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.7.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-test -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session</artifactId>
            <version>${spring.session.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.thymeleaf/thymeleaf-spring5 -->
        <dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf-spring5</artifactId>
            <version>${thymeleaf.spring.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>${hibernate.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.connector.java.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.thymeleaf/thymeleaf -->
        <dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf</artifactId>
            <version>${thymeleaf.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-orm -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.hibernate.javax.persistence/hibernate-jpa-2.1-api -->
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>${spring.security.version}</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate.javax.persistence</groupId>
            <artifactId>hibernate-jpa-2.1-api</artifactId>
            <version>1.0.0.Final</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>${common.codecs}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.webflow</groupId>
            <artifactId>spring-webflow</artifactId>
            <version>${spring.webflow.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/javax.validation/validation-api -->
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>2.0.0.Final</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/commons-validator/commons-validator -->
        <dependency>
            <groupId>commons-validator</groupId>
            <artifactId>commons-validator</artifactId>
            <version>1.6</version>
        </dependency>
    </dependencies>
    <repositories>
    </repositories>
</project>