【问题标题】:Can we define @valid/@validated at method level or at object creation level我们可以在方法级别或对象创建级别定义@valid/@validated
【发布时间】:2017-11-24 12:33:33
【问题描述】:

我知道我们可以在休息端点使用@valid 和@validated 注解,但是我们可以在方法或对象创建级别使用它们吗?

我的要求是,我在调用端点上收到 csv 文本数据,我将其转换为对象,现在我想验证该对象的字段。如果 cst 文本如下所示,如何完成或者我可以在请求正文中验证 csv 文本本身。

例如,

444-44444-4444-4444-44444444;1234;AB;N;0;0;

这是我收到的,每个逗号分隔的值都是一个单独的字段, 我可以验证这个 csv 还是

M 将文本转换为具有所有这些字段的对象,

例如,

请求对象{

field1 :- 444-44444-4444-4444-44444444 ;

field2 :-1234;

field3 :-ABC ;

field4 :-N;

field5 :- 0;

field6 :-0;

}

我想验证这些字段,

【问题讨论】:

    标签: spring-boot


    【解决方案1】:

    您可以为此创建 POJO:

    public class MyPojo{
      @NotNull
      private String field1;
      @Size(min=10)
      private String field2;
      ...
    }
    

    然后创建服务,哪个方法将接受或返回该 pojo 并使用 @Validated 注释它

    @Validated
    public interface MyService{
    
     @Validated MyPojo getMyPojo(String... params);
    
     void processMyPojo(@Validated MyPojo mypojo);
    }
    

    我猜这个结构应该可以工作。

    【讨论】:

    • 这对我不起作用,但是通过创建自定义验证器工作,我想避免这样一个小功能
    猜你喜欢
    • 1970-01-01
    • 2019-10-09
    • 1970-01-01
    • 2016-07-10
    • 1970-01-01
    • 1970-01-01
    • 2016-02-07
    • 2012-05-13
    相关资源
    最近更新 更多