Дополнительно про 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отпадет).