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

xml格式的spring配置文件中的#和$意味着什么?,xml,spring,Xml,Spring,我试图理解用XML编写的spring配置。 。。。 值字段的变量定义为“#{$.val(…)}”。我知道类似db.user的内容是从基本xml文件中定义的项目配置文件中提取的。有人能解释一下“#{$.val(…)}”是如何工作的吗?我刚刚讨论了“exp.”“exp”在el中的工作原理;这里是“$”.val()。 这意味着引用了bean id。在本例中,这意味着已在另一个xml文件中定义了$ <bean id="$" class="....Config"> <cons

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

。。。
值字段的变量定义为“#{$.val(…)}”。我知道类似db.user的内容是从基本xml文件中定义的项目配置文件中提取的。有人能解释一下“#{$.val(…)}”是如何工作的吗?

我刚刚讨论了“exp.”“exp”在el中的工作原理;这里是“$”.val()。 这意味着引用了bean id。在本例中,这意味着已在另一个xml文件中定义了$

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


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

谢谢@isah。。。那有帮助@这解释了#和$的用法。。但是,如果$用于立即评估,而#用于延迟评估,那么它们是如何一起工作的呢。我的意思是,如果定义是在第一次加载页面时加载的,那么$的使用就变得多余了。还有val()的函数,它是用来解析conf文件还是其他东西,因为我认为spring支持conf解析。我从未见过它,它看起来像一个隐式方法。通常您对属性文件执行${db.url}或#{db.url}操作。谢谢。你真的把我推向了正确的方向@国际畜禽保健协会
<bean id="$" class="....Config">
    <constructor-arg index="0" value="/etc/...conf">
</bean>