如何解决从Spring请求反序列化不可变
我很难弄清楚如何将Spring请求参数反序列化为一个不变的对象。
我的不变类如下:
@JsonDeserialize(as = ImmutableItemsSelector.class)
@Value.Immutable
public interface ItemsSelector {
Set<String> getNames();
Set<String> getSubtypes();
}
我的Spring控制器看起来像这样:
@GetMapping("/items") // Example url: /items?names=stest,stest2&subtypes=w1,w2
public Set<Items> getItems(ItemsSelector itemsSelector) {
return itemService.getItems(itemsSelector);
}
很简单,对吧?除非它不适用于@Value.Immutable
:
看一下为ImmutableItemsSelector生成的代码,这显然很有意义,因为构造函数是私有的。因此,我尝试使用@Value.Modifiable
并...起作用了!但是我真的不喜欢Spring为ItemsSelector JUST生成两个生成的实现。这也破坏了不变性的整个目的。
有没有更简单的方法将请求参数反序列化为ImmutableItemsSelector?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。