java - 在构造函数参数中引用 bean 时是否可以使用 Spring EL?

标签 java spring spring-el

<bean id="foo" class="com.bla.Foo" />
<bean id="bar" class="com.bla.Bar" />
<bean id="channel" class="com.bla.Channel">
    <constructor-arg ref="#{(config.isFooEnabled()) ? foo : bar}"/>
</bean>

我收到以下错误:

Cannot resolve reference to bean '#{(config.isFooEnabled()) ? foo : bar}'

最佳答案

ref 属性值必须是字符串,而不是引用本身,因此,我会尝试将 foobar 作为字符串返回,如:

<constructor-arg ref="#{(config.isFooEnabled()) ? 'foo' : 'bar'}"/>

Spring beans引擎将获取表达式返回的字符串,并解析引用。

关于java - 在构造函数参数中引用 bean 时是否可以使用 Spring EL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13722838/

相关文章:

java - SPeL 将字符串转换为整数

java - spring内部如何评估SPEL?

java - SpEL - 在 spring security 中访问 session 对象

java - 如何用guice注入(inject)资源

java - 错误 - 错误的请求;检查错误消息以获取详细信息

java - Apache Poi : Text is added to . doc 文件在其内容之前但不在其内容之后

java - 为什么java上的图形不输出任何内容?

javascript - 我无法将数据从 AngularJS 发送到 Spring MVC Controller

java - 如何使用 spring RestTemplate 生成带有二进制数据的curl 请求?

java - 为什么我无法将编码后的密码与spring security匹配?