I am trying to understand a configuration for spring written in XML.
...
<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>
The value field has variables defined as "#{$.val(...)}" . I understand that something like db.user are extracted from the project configuration file defined in base xml file. Can someone explain how does "#{$.val(...)}" work?