Как контролировать, следует ли сериализовать поле с помощью Spring Boot на основе активного профиля - PullRequest
0 голосов
/ 25 сентября 2018

Я искал способ, чтобы иметь возможность комментировать мои модели ответов в Spring Boot с помощью пользовательской аннотации для управления тем, какое поле должно быть сериализовано с использованием пружинных профилей и Джексона.

Я знаю, что существует существующееаннотация JsonView для определения различных представлений, но для этого потребуется логика для обработки отдельных представлений для каждой модели или их включения.

Я скорее использую пользовательскую аннотацию, которая будет принимать (список) профилей для исключения / включения поляfor.

Я также изучал написание сериализатора, но он контролирует только значение, а не все свойство, включая имя.

Возможно ли это каким-то образом?

class Response {

    var message: String

    @JsonExclude("production")
    var debugMessage: String? = null
}

1 Ответ

0 голосов
/ 25 сентября 2018

Я предлагаю вам работать на более высоком уровне.

Полагаю, ваш ответ сериализуется веб-службой.Возможно, у вас может быть одна реализация, которая отправляет Ответ с @JsonExclude, а другая - без.

Вы включаете нужный веб-сервис с аннотацией @Profile.

@RestController
@Profile("withExclude")
class WithExcludeController : IMyController {
  fun process() : ResponseWithExclude {
    // ...
  }
}

@RestController
@Profile("withoutExclude")
class WithoutExcludeController : IMyController {
  fun process() : ResponseWithoutExclude {
    // ...
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...