【问题标题】:How to use SpEL to inject result of method call in Spring?如何使用SpEL在Spring中注入方法调用的结果?
【发布时间】:2016-08-03 10:20:02
【问题描述】:

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

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)”的结果

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

【问题讨论】:

标签: java spring spring-el


【解决方案1】:

@Qualifier 中不能使用 SpringEL,SpringEL 中只能使用常量。

在名为“a.b”的bean上注入调用方法“getC(name)”的结果,如下所示:

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

【讨论】:

    猜你喜欢
    • 2021-05-26
    • 1970-01-01
    • 1970-01-01
    • 2014-12-13
    • 1970-01-01
    • 1970-01-01
    • 2015-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多