SpringBoot检查注入的属性是否被设置为NotNull。

我知道在SpringBoot 2.2中,我可以很容易地通过以下结构注入一个属性文件。

@ConstructorBinding
@ConfigurationProperties(prefix = "example")
@Data
@AllArgsConstructor
public final class MyProps {

  @NonNull
  private final String neededProperty;
  @NonNull
  private final List<SampleProps> lstNeededProperty;

  public String getFirstSample(){
    return lstNeededProperty.get(0); //throws NPE
  }

}

@ConstructorBinding
@AllArgsConstructor
@Data
public class SampleProps {
  String key;
  String label;
}

和yml文件一样。

expample:
  neededProperty: test1
  lstNeededProperty:
    -key: abc
     label: input

@NonNull 蛮好用的 String 但失败的 List – 因为即使列表将被设置,NPE也会被抛出。

是否有一个 简单的 的方式来检查是否 List 是初始化的?我试过 @Postconstruct 但是这个根本就没有被调用。

解决方案:

试着检查列表的大小和初始化。

@ConstructorBinding
@ConfigurationProperties(prefix = "example")
public final class MyProps {

  @NonNull
  private final String neededProperty;
  @Size(min=1)
  private final List<String> lstNeededProperty = new ArrayList<>();
}

给TA打赏
共{{data.count}}人
人已打赏
解决方案

春天数据jpa与java FX

2022-5-11 14:00:16

解决方案

显示GDS中各列的简单平均数。

2022-5-11 14:00:18

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索