【问题标题】:why isn't @NotBlank not showing up as an import为什么@NotBlank 不显示为导入
【发布时间】:2020-06-29 03:46:21
【问题描述】:

我的代码有问题

包 com.example.demoSpring.student;

import com.fasterxml.jackson.annotation.JsonProperty;
import org.springframework.lang.NonNull;

**import javax.validation.constraints.NotBlank;**
import java.util.UUID;

public class Students {
    private final UUID studentId;

    **@NotBlank**
    private final String firstName;

    **@NotBlank**
    private final String lastName;

    **@NotBlank**
    private final String email;

    @NonNull
    private final Gender gender;

    public Students(@JsonProperty("studentId") UUID studentId,
                    @JsonProperty("firstName") String firstName,
                    @JsonProperty("lastName") String lastName,
                    @JsonProperty("email") String email,
                    @JsonProperty("gender") Gender gender) {
        this.studentId = studentId;
        this.firstName = firstName;
        this.lastName = lastName;
        this.email = email;
        this.gender = gender;
    }

    public UUID getStudentId() {
        return studentId;
    }

    public String getFirstName() {
        return firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public String getEmail() {
        return email;
    }

    public Gender getGender() {
        return gender;
    }

    @Override
    public String toString() {
        return "Students{" +
                "studentId=" + studentId +
                ", firstName='" + firstName + '\'' +
                ", lastName='" + lastName + '\'' +
                ", email='" + email + '\'' +
                ", gender=" + gender +
                '}';
    }

    enum Gender{
        MALE,FEMALE
    }

}

它告诉我 import javaz.validation.contraints.NotBlank 不存在,我如何在我的 IntelliJ 上安装这些

我正在做一个项目,我遇到了这个问题,任何导入都会有帮助,我正在使用邮递员。 每次我检查 import javax.validation.constraints.NotBlank;是红色的,我检查选项添加依赖项当我单击 web 上的查找 jar 时,我没有得到任何结果 maven 找不到它。如何将它导入到我的 IntelliJ 程序中?

这也是我的 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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.0.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demoSpring</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demoSpring</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>11</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.flywaydb</groupId>
            <artifactId>flyway-core</artifactId>
        </dependency>



        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.assertj/assertj-core -->
        <dependency>
            <groupId>org.assertj</groupId>
            <artifactId>assertj-core</artifactId>
            <version>3.16.1</version>
            <scope>test</scope>
        </dependency>


        <dependency>
            <groupId>com.zaxxer</groupId>
            <artifactId>HikariCP</artifactId>
            <version>3.4.5</version>
        </dependency>
        <dependency>
            <groupId>com.example</groupId>
            <artifactId>demoSpring</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>commons-validator</groupId>
            <artifactId>commons-validator</artifactId>
            <version>1.3.1</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

我添加了这个

<dependency>
    <groupId>**javax.validation**</groupId>
    <artifactId>**validation-api**</artifactId>
    <version>**2.0.1.Final**</version>
</dependency>

但粗体区域为红色,未找到这些依赖项

当我尝试输入依赖项时仍然出现错误

<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>2.0.1.Final</version>
</dependency>

【问题讨论】:

  • 删除 validation-api 依赖并添加 spring-boot-starter-validation 作为依赖(在 Spring Boot 2.3 之前,这是自动添加的 spring-boot-starter-web 但它已更改为不再自动添加!)。另一方面,assertjHikariCP 默认已添加,因此您也可以删除这些依赖项。 ]
  • 请不要问the same question again(只是因为您对答案不满意,请编辑问题以提供更多详细信息!)。
  • M. Deinum 是 Stackoverflow 用户的新手。我会确保不要重复同样的问题。 ??????

标签: java spring spring-boot intellij-idea javax.validation


【解决方案1】:

对于 Spring Boot 项目,我添加了“validation-api”,但邮递员没有抛出错误,它允许存储空白字段(@NotBlank 不起作用)。 然后我用了这个-

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
            <version>2.4.1</version>
</dependency>

它成功了。

【讨论】:

    【解决方案2】:

    需要添加validation-api依赖

    <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
        <version>2.0.1.Final</version>
    </dependency>
    

    【讨论】:

    • pom.xml 中有什么地方吗?因为我添加了它但它不起作用
    • 当您打开并更新pom.xml时,您应该会在右上角看到一个刷新图标@
    • 不,您将只是在 intellij 中重新导入 maven 项目。它更新打开的项目中的类路径。保存的文件没有得到更新
    • 添加 API 会使其编译,但如果没有实现,它不会做任何事情。
    • 要将此类用作可空/非空注释,您还需要将其添加到相应的检查配置中:设置(macOS 上的首选项)|编辑 |检查 |爪哇 |可能的错误 |可空性问题 | @NotNull/@Nullable 问题 -> 配置注解.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-12
    • 2016-10-27
    • 2020-10-16
    • 1970-01-01
    • 2011-02-24
    • 1970-01-01
    • 2012-05-13
    相关资源
    最近更新 更多