- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我只是在试验这些新的 Java 记录,我想知道我是否可以将它们用作 spring boot 应用程序中我的请求/响应类型的 DTO。
因此,我只是修改了一些代码(带有大量用于记录的样板 getter/setter 的类),编译并启动了我的应用程序。尝试一些休息端点,我得到的只是一个异常告诉我:
没有找到类 x.y.CreateNewShopListeCommand$Item 的序列化程序,也没有发现创建 BeanSerializer 的属性(为避免异常,禁用 SerializationFeature.FAIL_ON_EMPTY_BEANS
好吧,记录不会创建带有“get”前缀的 getter 方法。现在我想知道:是否可以使用记录作为 spring boot Controller 的请求/响应类型?
编辑:示例应用程序(https://github.com/kaipaysen/playground-jdk14-records-as-dto)
// HelloController.java
@RestController
@RequestMapping("/hello")
public class HelloController {
public record HelloRequest(
@JsonProperty("name") String name
) {}
public record HelloResponse(
@JsonProperty("message") String message
) {}
@RequestMapping(method = RequestMethod.POST)
public HelloResponse hello(@RequestBody @Valid HelloRequest query) {
return new HelloResponse("Hello " + query.name());
}
}
调用 curl -X POST -H "Content-Type: application/json"-d '{"name":"Max"}' http://localhost:8080/hello
返回 {"message":"Hello null"}
.调试 hello
显示 Request 未正确反序列化。有什么想法吗?
编辑#2:刚发现这个问题Support for JDK 14 record types #2709在 FasterXML 仓库中。他们正在为 jackson 2.12 开发它。
最佳答案
您需要将此类级别的注释添加到您的记录中。
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY)
在 jackson 版本 1.12 中,它应该在没有注释的情况下可用。
我认为这是 Jackson 中的一个错误,您需要向记录中添加第二个字段,因为它不适用于只有一个字段的记录。
关于Java 记录 (JEP359) 作为 Spring Controller 请求和响应 DTO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63712187/
首先我不明白为什么人们在这个问题上给负分。要么解释我如何改进问题。我可以进一步说明。这是我这边的反馈。虽然我是新人,但我不打算不努力就提出问题。 我正在尝试在使用 jep 解释器的 Google Cl
最近,我对 singlesys Jep 做了一些测试,我有以下代码片段, Jep jep = new Jep(); jep.parse("x*2"); for (int i =
Brian Goetz 在 a recent article on InfoQ 中提到使 String final 导致问题: A good example where we pay for this
这个 JEP 的既定目标是增强 G1 垃圾收集器以在空闲时自动将 Java 堆内存返回给操作系统 由于G1极力避免full GC,只根据Java堆占用和分配 Activity 触发并发循环,所以在很多
我正在尝试使用 Jep 进行 python 和 java 集成。我已使用 Jep 从 java 程序将 pickle 文件(rf.pkl)中的 randomforest 模型加载为 sklearn.e
我正在使用第三方库 org.nfunk.jep。所有计算都在库中的 double 中进行,无论输入变量的类型如何。所以当下一段代码执行时: BigDecimal value1 = new BigDec
我打算启动一个 JEP/JSR,以将替代访问运算符引入 Java 语言规范。我已经确定了该提案的外观,现在我想收集对该提案的反馈(例如,如果我是第 999 个提出这件事的人)。我想在实际开始提案之前最
我使用 jep 在 java 中运行 python 脚本,我基本上需要运行使用 scikit 包的脚本。但当我尝试运行时它显示错误,我无法理解。 这是我程序中的一段代码,Jep jep = new J
2012 年,a JEP 145已创建以 在 java 中缓存已编译的 native 代码,以更快的 jvm 启动。 当时,it had been officially announced. 然而,J
这里我说的是this JEP .文中多次提到“远距离行动”;例如: Excluding locals with no initializers eliminates "action at a dist
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 4 年前。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 4 年前。
我看到这个 JEP ( http://openjdk.java.net/jeps/197 ) 引入了 3 种类型的代码缓存。 对我来说最明显的是 -XX:NonNMethodCodeHeapSize。
我昨天启动了Java 11,我下载了JDK,制作了PC(windows)的环境变量,创建一个新项目并设置 JDK 和 JRE 以指向 Java 11。 我什至在 cmd 中通过 echo %JAVA_
我正在尝试在 Jenkins 中运行 Performance Center 构建作业,但在作业中遇到了 JEP-200 问题。 Jenkins 网站确实建议了一种解决方法,即使用 -Dhudson.r
我正在尝试用 JDK9's new AOT 编译一个应用服务器功能,并且面临着许多挑战。 应用服务器包含约 180 MB 的 jar ;一起编译overflows integer所以我尝试将每个模块编
我在 Windows 10 上用 Java 创建 JEP SubInterpreter 时遇到以下错误: Fatal Python error: init_sys_streams: can't ini
==环境 Mac OSX 10.9.1 已安装 python 2.7.3、python 3.3 python安装目录:/Library/Frameworks/Python.framework 我尝试使
我在下载 jep 后得到了 'libjep.so' 文件,我还在 ~./bashrc 中设置了环境变量 LD_LIBRARY_PATH ,如下所示: export LD_LIBRARY_PATH=$L
我是一名优秀的程序员,十分优秀!