spring配置文件十分灵活的,比如当遇到要配置JDBC之类或者和主机有关的信息时,可以这样,进一步抽象
生成如下的属性文件(/WEB-INF/jdbc.properties):
我们的Bean配置如下:
OR
applicationContext.xml中数据源配置:
我们定义了一个PropertyPlaceholderConfigurer类的实例,并将其位置属性设置为我们的属性文件。
该类被实现为BeanFactoryPostProcessor(Bean工厂后处理器);并将使用定义在文件中的属性来代替所有的占位符(${...}value)。
利用这种技术,我们可以从applicationContext.xml中移除所有特定于主机的配置属性。
通过这种方式,我们可以自由地为该文件添加新的Bean,而不必担心特定于主机属性的同步性。这样可以简化生产部署和维护。
生成如下的属性文件(/WEB-INF/jdbc.properties):
jdbc.driver=org.postgresql.Driver
jdbc.url=jdbc:postgresql://localhost/test
jdbc.user=postgres
jdbc.password=
我们的Bean配置如下:
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>/WEB-INF/jdbc.properties</value>
</property>
</bean>
OR
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value></value>
</list>
</property>
</bean>
applicationContext.xml中数据源配置:
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>${jdbc.driver}</value>
</property>
<property name="url">
<value>${jdbc.url}</value>
</property>
<property name="username">
<value>${jdbc.user}</value>
</property>
<property name="password">
<value>${jdbc.password}</value>
</property>
</bean>
我们定义了一个PropertyPlaceholderConfigurer类的实例,并将其位置属性设置为我们的属性文件。
该类被实现为BeanFactoryPostProcessor(Bean工厂后处理器);并将使用定义在文件中的属性来代替所有的占位符(${...}value)。
利用这种技术,我们可以从applicationContext.xml中移除所有特定于主机的配置属性。
通过这种方式,我们可以自由地为该文件添加新的Bean,而不必担心特定于主机属性的同步性。这样可以简化生产部署和维护。