Spring 配置属性的外在化
在大多数情况下,我们可以在一个Bean装配文件里配置整个程序,但是有时却需要把部分配置
提取到单独的属性文件里,最常见的一种情形就是配置数据源。
Spring里面,提供了PropertyPlaceholderConfigurer 去告诉Spring从外部属性文件加载特定的配置。
为了启用这个特性,需要在Bean 装配文件里面配置如下的bean.
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:database.properties</value>
</list>
</property>
</bean>
现在我们就可以再Bean装配文件里面用占位变量替代硬代码的配置。
从语法上讲,占位变量的形式是${variable}
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="${datasource.jndiname}"/>
</bean>
上述由JNDI查询数据源进行配置数据库
Spring程序经常会运行在一个j2ee应用程序服务器里,比如JBoss甚至Tomcat等WEB容器里。
这些服务程序可以配置为通过JNDI获取数据源。
好处:他们完全可以在程序之外进行管理。程序本身只需要访问数据库时 请求数据源即可。
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="/jdbc/aps "/>java:comp/env/jdbc/aps
<property name="resourceRef" value="true"/>
</bean>
当resourceRef属性为true时,jndiName会被添加java:comp/env/
详细了解classpath:用法 ,请看下一篇
转载于:https://blog.51cto.com/jeiofw/934404