Давайте предположим, что у меня есть аннотированный свойство компонента сеттер, как это:Настраиваемый @Autowired
public class Foo {
...
@Autowired
public void setBar(Bar bar) {
...
}
Springframework будет искать соответтсвующее Bar
свойство, как обычно. Тем не менее, я хотел бы перехватить процесс обработки компонентов по умолчанию и добавить немного «волшебства». Я хотел бы представить распознаватель так:
public interface SomeResolverInterface<T> {
public T resolve(Class<T> beanClass);
}
public class BarResolver implements SomeResolverInterface<Bar> {
@Override
public Bar resolve(Class<Bar> beanClass) {
if(someCondition) {
return someBean;
} else {
return anotherBean;
}
}
...
Я знаю, что я мог бы ввести во все дни своего рода обертку боба и перемещать разрешающую логику в этом, но я бы предпочел более общий способ, используя распознаватель, как описано выше, чтобы сделать Foo
полностью независимым от разрешающей логики.
Есть ли способ в рамках Springframework достичь чего-то подобного?
+1 для @Configuration, все остальные выглядят далеко –