Spring boot может принимать Enum в качестве параметра Request - PullRequest
1 голос
/ 27 марта 2019

Итак, я попал в этот новый проект Spring Boot, который уже находился в стадии разработки, и во время написания API я использовал Enum для @RequestParam в своем контроллере, и он работал.

Я не писал никаких конвертеровдля этого.

Позже я заметил, что в этом проекте другие разработчики написали собственные конвертеры для этого.

Поэтому я решил поискать в интернете информацию об этом и всех решениях, которые пришли к использованию Enum с Controller в используемом конвертере Spring Boot, не смог найти ни одного примера без конвертера, как, например, я.

Ниже приведен пример того, как я написал это, LoanStatus - это Enum:

@RequestMapping(value = "/loans", method = RequestMethod.GET)
public ResponseEntity<?> getPatientsLoan(HttpServletRequest request,
            @RequestParam(value = "loanStatus", required = false) LoanStatus loanStatus) {}

Так что это относительно новая функция, которую Spring Boot принимает Enums теперь безнужны конвертеры, и поэтому во всех примерах использовались конвертеры, или я столкнусь с какой-то проблемой в функциональности, потому что у меня нет конвертеров пользователя, хотя в настоящее время он работает для меня?

1 Ответ

1 голос
/ 27 марта 2019

Spring поддерживает преобразование String в Enum с Spring 3.0.Существует ConverterFactory, который динамически создает конвертер для определенного перечисления.

До этого вам потребуется написать пользовательский Converter или PropertyEditor для преобразования перечислений.Но в основном с текущими версиями вам не нужно, если String соответствует имени Enum.

Если вы хотите пользовательское преобразование перечисления (по некоторому внутреннему значению или как-то еще), вам все равно понадобится пользовательский преобразователь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...