我正在使用 Spring Boot Java API。我们有一系列 HandlerInterceptorAdapter 类,我们的 API 调用在它们到达控制器之前会经过这些类。我们有一个数据对象,它在通过这些拦截器时设置了它的字段。该代码由许多团队拥有,因此对该架构进行根本更改并不是一个真正的选择,至少在这个问题的范围内。
我们目前将此对象作为 Lombok 构建器传递,并在需要读取字段时沿途调用 build()。这对我来说感觉不太好,总的来说,我们正在尝试将这个项目从 Lombok 移开并使用 Immutables 库。
阅读 Modifiable 的文档,似乎这就是我想要使用的。我已经尝试创建一个作为 Modifiable 对象的 bean,但是 Spring CGLIB 类的某些内容使 setter 方法无法连接到 Modifiable 对象本身。它看起来运行正常,但实际上没有设置任何字段。
FWIW,我还必须配置 Modifiable 类@Value.Style(create = "new")
以防止它成为final
.
我也尝试过对一个Immutable.Builder
没有运气的班级做同样的事情。
是否可以以Modifiable
这种方式使用库?从概念上讲,它似乎非常适合这个用例。