我使用的是不可变的。org库,并希望添加Javax注释验证。但是我注意到验证没有被带到生成的类中。我认为这是不变的。org与验证注释兼容。我有spring boot starter验证和javax。验证依赖项。
不可变的
@Value.Immutable
public interface Entity {
@Valid @Size(min = 19)
int age();
@Valid @NotBlank
String name();
}
控制器:
@PostMapping("/entity/")
public ResponseEntity post2(@RequestBody @Valid ImmutableEntity entity) {
return new ResponseEntity<Object>("", HttpStatus.OK);
}
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.5.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>testImmutable</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>testImmutable</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.immutables</groupId>
<artifactId>value</artifactId>
<version>2.8.8</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.5</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
@Size
不适用于int
字段,您需要使用@Range
或@Min
我试图使用swagger来记录我的Restapi,并且取得了一些成功,但是在受限资源参数方面,我遇到了一堵墙。我正在使用JBoss RESTEasy与Hibernate验证器提供程序和Jackson 2.x注释的POJO。我遇到的问题是,当遇到@DecimalMin/@DecimalMax注释时,我得到一个 似乎swagger正在尝试使用较新版本的javax.validation.constrai
我使用javax.validation和Hibernate验证器实现了一些代码。使用验证的单元测试工作良好。该构建生成OSGi包和特性,并在Karaf中运行。 “无法创建配置,因为找不到Bean验证提供程序。请将Hibernate Validator(RI)这样的提供程序添加到类路径中。” 我会包括stacktrace,但它对我来说没有什么用。大部分都在我的代码、junit和Paxexam中。 我
我的springboot版本是2.3.7。我知道spring boot starter验证不是spring boot starter web的可传递依赖项。但即使单独添加了它,我的注释也不起作用。 //下面的依赖我已经添加build.gradle编译'org.springframework.boot: spring-boot-starter-validation' //我希望在请求时出错的示例类
假设我有一个非常简单的模型,我想验证它的标题是否为空白。 在服务层上,我执行如下验证(使用Hibernate验证器): 我的资源是: null 编辑 我忘了提到,将方法范围从private更改为public可以使验证工作。
我正在用Java对一个二进制文件进行签名。我能够在Java代码中签名和验证,但是在openssl中使用生成的签名时,它无法验证到相同的二进制文件。步骤是:加载数据- 这应该相当于在openssl: openssl dgst-sha256-符号private.key-二进制target.bin 我验证了sha256与openssl生成的匹配。
我有一个xml,我已经生成了xsd文件。 XML文件 XSD文件 但是当我在eclipse中生成JAXB类时。 NetCharge 类是使用变量字符串“货币”创建的,但没有值变量。 所有其他使用值和属性的类都会发生这种情况。 请帮帮忙。