`
yanglei008
  • 浏览: 85236 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

spring配置文件之灵活配置(转)

阅读更多
spring配置文件十分灵活的,比如当遇到要配置JDBC之类或者和主机有关的信息时,可以这样,进一步抽象
生成如下的属性文件(/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,而不必担心特定于主机属性的同步性。这样可以简化生产部署和维护。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics