Как использовать 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);
}
Другие вопросы по тегам