Дополнительно про Criteria API и JPA Metamodel: если по какой-то причине не хочется использовать JPA Metamodel, то можно заиспользовать @FieldNameConstants от Lombok, что также даст ошибку компиляции при изменении имени поля.
Да, про Configurable знаю. Просто не совсем понимал, зачем это в данном случае применяется. Но как я понимаю, если мы весь SomeServiceConfiguration пометим как Configuration, то объявленные бины применятся ко всем FeignClient. А в описанном кейсе из статьи мы хотим сделать данную конфигурацию к определенным клиентам (например, указав в FeignClient(configuration = SomeServiceConfiguration)). Но в таком кейсе Configurable не особо нужен, т.к. все зависимости успешно зарезолвятся и без него (при этом можно заменить Autowired на constructor-injection)
А зачем нужна аннотация Configurable над SomeServiceConfiguration? Это ведь не обычный класс, а управляемый Spring'ом бин. К тому же, для инициализации бинов, помеченный аннотацией Bean необходима аннотация Configuration (которая как раз и решит проблему инжекта, т.е. надобность в Configurable отпадет).
Спасибо, отличный набор хороших решений!
Дополнительно про Criteria API и JPA Metamodel: если по какой-то причине не хочется использовать JPA Metamodel, то можно заиспользовать @FieldNameConstants от Lombok, что также даст ошибку компиляции при изменении имени поля.
Для того, чтобы ограничения (@Min,@Max, @Pattern и т.д.) были видны в UI нужно установить свойство
springdoc.swagger-ui.show-common-extensions=true
В "Этап уничтожения bean-компонента" опечатка: вместо
@PreDestroy
указано@PostConstruct
Спасибо за ответ.
Да, про
Configurable
знаю. Просто не совсем понимал, зачем это в данном случае применяется. Но как я понимаю, если мы весьSomeServiceConfiguration
пометим какConfiguration
, то объявленные бины применятся ко всем FeignClient. А в описанном кейсе из статьи мы хотим сделать данную конфигурацию к определенным клиентам (например, указав вFeignClient(configuration = SomeServiceConfiguration)
). Но в таком кейсе Configurable не особо нужен, т.к. все зависимости успешно зарезолвятся и без него (при этом можно заменитьAutowired
на constructor-injection)А зачем нужна аннотация
Configurable
надSomeServiceConfiguration
? Это ведь не обычный класс, а управляемый Spring'ом бин. К тому же, для инициализации бинов, помеченный аннотациейBean
необходима аннотацияConfiguration
(которая как раз и решит проблему инжекта, т.е. надобность вConfigurable
отпадет).