Пользовательская аннотация для выполнения индивидуальной логики внедрения.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Пользовательская аннотация для выполнения индивидуальной логики внедрения.

Сообщение Anonymous »

Spring 5.3
Пример использования:
У меня есть аннотация

Код: Выделить всё

public @interface MyInject {
String region();
String type();
}
Я хочу использовать эту аннотацию аналогично

Код: Выделить всё

@Resource(“beanName”)
но с именем компонента, вычисленным во время выполнения, которое нужно внедрить. Погуглив и используя искусственный интеллект, я обнаружил, что для этого существует несколько подходов:
  • Код: Выделить всё

    AutowiredAnnotationBeanPostProcessor
  • Код: Выделить всё

    QualifierAnnotationAutowireCandidateResolver
  • Реализация BeanPostProcessor с нуля, которая будет выполнять установку полей вручную
Подход AutowiredAnnotationBeanPostProcessor выглядит довольно многословным. Он требует переопределения postProcessorProperties и, по сути, выполнения того же ручного setField.
Подход QualifierAnnotationAutowireCandidateResolver выглядит довольно хорошо и просто в реализации, но вопрос в том, как зарегистрировать собственный преобразователь, не затрагивая другие части кода.
Подход постпроцессора bean-компонентов с нуля не кажется мне правильным, поскольку он может пропустить некоторые тонко.
Можете ли вы подсказать, как лучше всего решать такие проблемы весной?

Подробнее здесь: https://stackoverflow.com/questions/798 ... tion-logic
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»