spring 属性 来自 spring 表达式的解析
spring property resolution from a spring expression
我想解析 属性 并使用 Spel 表达式指定 属性 的名称。如果我这样做
<property name="host" value="#{T(...Constants).SINK_PROP_HOST}" />
该值被正确解析为 sink.host
,这是此常量的值。更进一步
<property name="host" value="${#{T(...Constants).SINK_PROP_HOST}}" />
这行不通。任何想法如何让它发挥作用。本质上它的功能应该与
相同
<property name="host" value="${sink.host}" />
你不能那样做,因为属性在 SpEL 之前解析(你可以反过来做)。
这有效...
public class Foo {
public static final String FOO = "foo.prop";
}
<util:properties id="props">
<prop key="foo.prop">bar</prop>
</util:properties>
<bean id="xx" class="foo.Bar">
<property name="foo" value="#{props[T(foo.Foo).FOO]}"/>
</bean>
当然,您可以从文件加载 "props" bean。
我想解析 属性 并使用 Spel 表达式指定 属性 的名称。如果我这样做
<property name="host" value="#{T(...Constants).SINK_PROP_HOST}" />
该值被正确解析为 sink.host
,这是此常量的值。更进一步
<property name="host" value="${#{T(...Constants).SINK_PROP_HOST}}" />
这行不通。任何想法如何让它发挥作用。本质上它的功能应该与
相同<property name="host" value="${sink.host}" />
你不能那样做,因为属性在 SpEL 之前解析(你可以反过来做)。
这有效...
public class Foo {
public static final String FOO = "foo.prop";
}
<util:properties id="props">
<prop key="foo.prop">bar</prop>
</util:properties>
<bean id="xx" class="foo.Bar">
<property name="foo" value="#{props[T(foo.Foo).FOO]}"/>
</bean>
当然,您可以从文件加载 "props" bean。