我有一个spring-boot:1.2.3
申请,我有2个验证问题:
这些是spring-boot:1.2.3
附带的验证库:
[INFO] | +- org.hibernate:hibernate-validator:jar:5.1.3.Final:compile
[INFO] | | +- javax.validation:validation-api:jar:1.1.0.Final:compile
[INFO] | +- org.glassfish.jersey.ext:jersey-bean-validation:jar:2.14:compile
这些是spring-boot-starter-log4j
附带的日志记录库:
[INFO] +- org.springframework.boot:spring-boot-starter-log4j:jar:1.2.2.RELEASE:compile
[INFO] | +- org.slf4j:slf4j-log4j12:jar:1.7.10:compile
[INFO] | \- log4j:log4j:jar:1.2.17:compile
此验证有效,但不记录或显示任何堆栈跟踪:
@Component
@Path("/validation-example")
public class ValidationExampleResource {
@GET
@Path("/{positiveNumber}")
public int validationExample(@Min(0) @PathParam("positiveNumber") int positiveNumber) {
...
}
}
但验证在这里根本不起作用:
@Service
public class ValidationExampleServiceImpl implements ValidationExampleService {
@Override
public int validationExample(@Min(0) int positiveNumber) {
...
}
}
答案 0 :(得分:1)
试试这个配置。在我的项目中它奏效了!春季启动:1.5.9.RELEASE
@Slf4j
@Service
@Validated
public class ValidationService {
@Validated(CreateGroup.class)
public void create(@Valid User user) {
log.info("验证服务业务的作用");
}
public void basic(@NotNull(message = "名称不能为空") String name) {
}
}
答案 1 :(得分:0)
为了使验证有效,您需要添加@Valid
@Component
@Path("/validation-example")
public class ValidationExampleResource {
@GET
@Path("/{positiveNumber}")
public int validationExample(@Valid @Min(0) @PathParam("positiveNumber") int positiveNumber) {
...
}
}