Предположим, у меня есть аннотированный установщик свойства бина, подобный этому:
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;
}
}
...
Я знаю, что мог бы всегда вводить какой-то bean-объект-обертку и перемещать в него разрешающую логику, но я бы предпочел более общий способ использования преобразователя, подобного описанному выше, чтобы сделать Foo
полностью независимым от логики разрешения. *
Есть ли в Springframe способ достичь чего-то подобного?