![](/img/trans.png)
[英]How to inject a Spring bean id into another Spring Configured Bean?
[英]How to inject the bean id with Spring EL?
我想将id
从XML配置传递给bean的构造函数。 我不想实现BeanNameAware来做到这一点。 我这样做的首选方式是这样的Spring EL表达式:
<bean id="ws1" class="com.example.MyClass">
<constructor-arg name="id" value="#{#this.id}"/>
<!-- ... -->
</bean>
但是,在这种情况下, #this
引用BeanExpressionContext
,其中不包含id
。
有没有办法用Spring EL表达式访问id
(在我的示例中为ws1
)?
如果您需要了解目标MyClass
实例中的bean id,则应考虑实现BeanNameAware
:
* Interface to be implemented by beans that want to be aware of their
* bean name in a bean factory. Note that it is not usually recommended
* that an object depends on its bean name, as this represents a potentially
* brittle dependence on external configuration, as well as a possibly
* unnecessary dependence on a Spring API.
但是没错,您无法从SpEL访问它。 OTOH我看不到您的示例ws1
复制/粘贴到该id
构造函数arg值的大问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.