【发布时间】:2021-06-28 20:23:24
【问题描述】:
我将 Spring Boot 与 Kotlin 一起使用,我的项目被拆分为模块,其中我有带有 REST 控制器和外观的应用层、带有服务和业务逻辑的域层以及用于与外部服务或 DB 通信的基础设施层。我认为(但我可能是错的)基本验证(如 notNull、notEmpty、max 和 min、size 等)的最佳位置是外观,因为 REST 控制器和另一个模块都与它通信,但问题是 javax 验证注释像@Valid 仅适用于 REST 控制器层(在带有注释 @RestController 的类中),当我尝试为此外观创建一些测试时,具有错误值的字段返回 NullPointerException 而不是 MethodArgumentNotValidException。我试图创建 WebMvcTest 但也返回错误的异常。这是解决方案吗?我看到我可以在方法内部调用一些验证器,但它看起来比方法参数上的注释要复杂得多。
【问题讨论】:
标签: spring-boot kotlin design-patterns architecture