当前位置: 首页 > 知识库问答 >
问题:

如何从声明为@RepositoryRestResource的CrudRepository截取编组(json Serial/Deserial)?

袁建木
2023-03-14

给定此存储库

@RepositoryRestResource( path = "u", itemResourceRel="ui", collectionResourceRel = "us")
public interface IUserRepository extends CrudRepository<Users, Long> {
}

当我通过控制器调用服务方法findAllUsers()时。我将实体列表结果(由免费提供的userRepository.findAll()方法返回)转换为域模型对象列表。这个域模型对象列表将被正确反序列化到JSON,因为我正在控制如何进行反序列化。我这样做有一个具体的原因,请参见下文。

现在,如果我想直接使用userrepository,那么在序列化过程中我会遇到一个循环,因为被反序列化的对象来自com.vividsolutions.jts.geom.geomethory库。该类包含如下所述的方法

  Geometry getEnvelope() Returns this Geometrys bounding box.

在反序列化过程中,jackson遇到了一个循环,因为它。我能够纠正控制器内的反序列化过程。如何拦截crudrepository中的反序列化?

我想到的第一个想法是创建我的接口的实现并覆盖所有方法,但这违背了做boile-plate代码的目的。

共有1个答案

丁宏盛
2023-03-14

您展示了@repositoryrestresource的用法,我假设您正在使用Spring Data REST导出存储库。有关标准Spring MVC封送处理配置,请参阅参考文档。

准确地说,您没有拦截存储库。Spring Data REST使用Jackson来封送和取消封送响应和请求。因此,您只需自定义SD REST将使用的Jacksonobjectmapper。为此,扩展RepositoryRestMvcConfiguration并重写ConfigureJacksonObjectMapper(…):

class MyConfiguration extends RepositoryRestMvcConfiguration {

  protected void configureJacksonObjectMapper(ObjectMapper mapper) {
    // register custom serialializers, modules etc.
  }
}

对于一般的自定义选项,请查看Jackson参考文档。

 类似资料:
  • 我使用Spring靴,希望提高性能。我必须下载数据库中有50000个字段的文件。使用hibernate。我在批量插入中找到了解决方案。但我不知道如何从Crudepository获得entitymanager 我创建了MyStorageService并想保存我的文件: } 如果在MyStorageService中使用 我明白了 错误[http-nio-18842-exec-1]JpaTransact

  • 问题内容: 我正在使用dgrijalva / jwt-go /软件包。 我想从令牌中提取有效载荷,但是我找不到方法。 示例(摘自:https : //jwt.io/): 对于编码: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOixMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydhV​​rF7H

  • 我有以下代码: 但当我试着去看测试的内容时,我看到了这个 如果我试图看到什么是在任何项目的数组我得到一个错误: 有人能解释一下我做错了什么,正确的方法是什么吗? Visual Studio 2022, Blazor Webassup,.NET6.0 谢谢

  • 在新的反射API中,属性是访问类型上声明的成员(字段、属性、方法等)的正确方法。但是,这些属性不包括从基类继承的成员。 旧的方法返回声明的和继承的成员,但并非在所有平台上都可用,包括。净核心。 如何使用新API获取已声明和继承成员的列表?

  • 我对java.sql.Statement的方法getGeneratedKeys()有问题 首先我的代码: 创造sql:(HSQLDB) 从DAO创建方法: 然后,我对生成的密钥进行了单元测试: 当我运行测试时,我得到一个失败和以下日志: 所以问题是

  • 问题内容: 我正在使用Python在Python中生成XML文档,但是在转换为纯文本时,该函数不包含XML声明。 我需要我的字符串包含以下XML声明: 但是,似乎没有任何记录的方式来执行此操作。 有没有合适的方法来呈现XML声明? 问题答案: 我很惊讶地发现似乎没有办法。但是,您可以用来将XML文档写入伪文件: 看到这个问题。即使那样,我认为如果不自己编写,就无法获得“独立”属性。