如何使用SpEL在Spring中注入方法调用的结果?

时间:2016-08-03 10:20:02

标签: java spring spring-el

我想将方法​​调用的结果注入我的类。我有下一个代码:

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而第三个也没有工作。

实际上我需要的是第三种变体。我需要在名为“a.b”的bean上注入调用方法“getC(name)”的结果

也许有人有类似的问题,知道怎么做?

1 个答案:

答案 0 :(得分:0)

你不能在@ Qualifier中使用SpringEL,并且只能在SpringEL中使用常量。

在这个名为“a.b”的bean上注入调用方法“getC(name)”的结果:

@Bean(name="a.b")
private B b(){
   return getC(name);
}