Учитывая этот репозиторийКак перехватить маршмаллинг (json serial/deserial) из CrudRepository, объявленного как @RepositoryRestResource?
@RepositoryRestResource(path = "u", itemResourceRel="ui", collectionResourceRel = "us")
public interface IUserRepository extends CrudRepository<Users, Long> {
}
Когда я иду через контроллер для вызова моего метода обслуживания findAllUsers()
. Я преобразую список объектов (возвращаемый методом), который предоставляется бесплатно) в список объектов модели домена. Этот список объектов модели домена будет правильно десериализоваться в JSON, потому что я контролирую, как выполнять десериализацию. Существует определенная причина, по которой я это делаю, см. Ниже.
Теперь, если я хочу напрямую использовать userRepository
, я запускаю цикл во время сериализации, потому что десериализуемый объект поступает из библиотеки com.vividsolutions.jts.geom.Geometry
. Этот класс содержит метод, описанный ниже.
Geometry getEnvelope() Returns this Geometrys bounding box.
Во время десериализации джексон запускается в петлю из-за этого. Я могу исправить процесс десериализации внутри моего контроллера. Как можно перехватить десериализацию от CrudRepository
?
Первая идея, которая пришла ко мне, заключалась в том, чтобы создать реализацию моего интерфейса и переопределить все методы, но это побеждает цель кода котельной.
Да, я использую Spring REST. Когда маршалл Джексона и unmarshall я бегу в бесконечный цикл из-за объекта 'com.vividsolutions.jts.geom.Geometry', который имеет метод, показанный выше. Этот метод возвращает другую 'com.vividsolutions.jts.geom.Geometry', следовательно, цикл, когда un/marshmalling. Вот почему мне нужно настроить этот процесс. – Cool