我试图理解用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(...)}”是如何工作的?
答案 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”属性进行了延迟调用。