Как использовать SpEL для вставки результата вызова метода в Spring?
Я хочу внедрить результат вызова метода в мой класс. У меня есть следующий код:
class Example {
private static final String NAME = "name";
// #1
@Autowired
@Qualifier("a.b")
private B b;
// #2
@Autowired
@Qualifier("#{a.b}")
private B b;
// #3
@Autowired
@Qualifier("#{a.b.getC('" + NAME + "')}")
private C c;
}
Итак, у меня есть 3 разных варианта. Первый работает, второй не работает, но не уверен, правильно ли я написал SpEL, а третий тоже не работает.
На самом деле мне нужен третий вариант. Мне нужно ввести результат вызова метода "getC(name)" в bean-компоненте с именем "ab"
Может быть, у кого-то была похожая проблема и знаете, как это сделать?
1 ответ
Вы не можете использовать SpringEL в @Qualifier, а можете использовать только константу в SpringEL.
вставьте результат вызова метода "getC(name)" в bean-компонент с именем "ab" следующим образом:
@Bean(name="a.b")
private B b(){
return getC(name);
}