xml格式的spring和配置文件中的#和$是什么意思?

时间:2014-09-30 08:06:31

标签: xml spring

我试图理解用XML编写的spring的配置。     

...

<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close" >
    <!-- These properties are replaced by Maven "resources" -->
    <property name="url" value="#{$.val('db.url')}" />
    <property name="driverClassName" value="#{$.val('db.driver')}" />
    <property name="username" value="#{$.val('db.user')}" />
    <property name="password" value="#{$.val('db.password')}" />
</bean>

值字段的变量定义为“#{$。val(...)}”。我理解db.user之类的东西是从base xml文件中定义的项目配置文件中提取的。有人可以解释“#{$。val(...)}”是如何工作的?

1 个答案:

答案 0 :(得分:0)

我刚刚了解了如何'exp'。'exp'在el中工作;这里'$'。val()。 这意味着引用了bean id。在这种情况下,它表示$已在另一个xml文件中定义。

<bean id="$" class="....Config">
    <constructor-arg index="0" value="/etc/...conf">
</bean>

因此,对使用bean id“$”引用的conf文件中定义的“db.something”属性进行了延迟调用。