给定一个Json,是否可以使用Jackson来解析消息的一部分?假设我感兴趣的数据埋藏在深层次的字段中,我根本不关心为每个类创建DTO类.
鉴于一个非常简化的场景,我想在不知道任何关于它之前的结构的情况下对Telephone类进行建模:
...{
"firstName": "John",
"lastName" : "doe",
"age" : 26,
"address" : {
"streetAddress": "naist street",
"city" : "Nara",
"postalCode" : "630-0192"
},
"phoneNumbers": [
{
"type" : "iPhone",
"number": "0123-4567-8888"
},
{
"type" : "home",
"number": "0123-4567-8910"
}
]
}....
Run Code Online (Sandbox Code Playgroud)
我正在考虑使用json-path和反序列化我感兴趣的部分.一些伪:
List<Telephone> phoneNrs = parse(".my.deep.structure.persons.phoneNumbers", List<Telephone.class>);
Run Code Online (Sandbox Code Playgroud) 我添加了使用 GroovyShell 在我的 Java 应用程序中解析和评估 groovy 脚本的功能。哪个 Maven 工件是我的构建中包含的最低限度?
我知道 groovy-all 肯定会包含我需要的一切,但我猜我也可以使用一个更小的包?
我在集成测试期间使用DBUnit来模拟我继承的传统Spring/Hibernate项目的数据.不幸的是很久以前有人认为拥有一个名为user的用户表会很好,这是我们数据库中的保留关键字.然后通过将实体表映射重命名为现在已经存在多年的`user`来解决这个问题.
正如我现在几年后开始整合集成测试一样,这就产生了一个问题,因为DBUnit不允许在其xml数据集文件中使用`字符(它是你知道的XML ...),而CSV读取器则要求文件是称为`user`.csv,在我的操作系统下似乎失败了.
有没有办法在不使用DBUnit的XML或CSV读取器的情况下添加此表,还是应该从另一个角度解决这个问题?一种替代方法是在集成测试期间使用另一个映射,以便我可以将表命名为它的预期名称(用户).但我不知道这是否可行.
我已经打了2天了,所以我喜欢一些外部反馈.
所以,只是澄清一下.我有一个实体,如:
@Entity (name = "`user`")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@Auditable
public class User implements UserDetails, Serializable {
properties etc....
Run Code Online (Sandbox Code Playgroud)
在我的集成测试期间,hibernate通过配置persistence.xml文件来负责创建其他表.当dbunit然后尝试填充数据时,由于缺少表而导致错误,无论我如何尝试转义用户表名.
经过一些基准测试后,我发现 AsyncHttpClient ( https://github.com/AsyncHttpClient/async-http-client ) 似乎是最稳定和可扩展的异步 http 客户端,因为它基于 NIO 并且似乎可以很好地扩展加载期间。我将它与 OkHttp 和 Apache Async 进行了比较,在模拟具有延迟的后端时,它似乎表现得非常好。
不幸的是,我还没有找到任何方法将其公开为 Spring AsyncRestTemplate,这使得在我们现有的代码库中进行迁移变得很痛苦。
有谁知道使用该库与 RestTemplate 的任何良好桥梁,或者如果不是的话,如何在 Spring 项目中创建一个问题以将其包含在其他异步 http 客户端工厂中?
java ×3
dbunit ×1
groovy ×1
groovyshell ×1
hibernate ×1
jackson ×1
json ×1
junit ×1
spring ×1
spring-boot ×1
spring-mvc ×1