我有一个包含许多ThingConfigurationResource
个bean的Spring Bean文件。根据系统属性activeCfg(-DactiveCfg=thing1
),如果bean id与System Property值匹配,我想为每个bean设置active
属性值。
我不明白如何访问SpEL表达式中的bean id。这不起作用#this.id
<bean class="ThingConfigurationResource" id="thing1">
<property name="active" value="#{systemProperties.activeCfg == #this.id ? true : false}"/>
</bean>
我明白了:
Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1008E:(pos 41): Property or field 'id' cannot be found on object of type 'org.springframework.beans.factory.config.BeanExpressionContext' - maybe not public?
我无法访问程序源代码,因此我必须使用SpEL执行此操作。