春天中配置和读取多个属性文件的方式方法

  

一个系统中通常会存在如下一些以属性形式存在的配置文件
  

  

1。数据库配置文件demo-db。属性:
  

        database.url=jdbc: mysql://localhost/smaple   database.driver=com.mysql.jdbc.Driver   database.user=根   数据库。密码=123      

2。消息服务配置文件demo-mq。属性:
  

        # congfig ActiveMQ   mq.java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory   mq.java.naming.provider.url=故障转移:(tcp://localhost: 61616 & # 63; soTimeout=30000, connectionTimeout=30000) & # 63; jms.useAsyncSend=true&超时=30000   mq.java.naming.security.principal=mq.java.naming.security.credentials=jms.MailNotifyQueue。消费者=5      

3。远程调用的配置文件demo-remote。属性:
  

        remote.ip=localhost   remote.port=16800   遥远。名=测试      


  

  

应用场景:属性配置文件不止一个,需要在系统启动时同时加载多个属性文件。
  

  

配置方式:

        & lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比;   & lt;豆类xmlns=" http://www.springframework.org/schema/beans "   xmlns: xsi=" http://www.w3.org/2001/XMLSchema-instance "   xsi: schemaLocation="   http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd”比;      & lt; !——将多个配置文件读取到容器中,交给弹簧管理——比;   & lt; bean id=皃ropertyConfigurer”类=皁rg.springframework.beans.factory.config.PropertyPlaceholderConfigurer”比;   & lt;属性名="位置"比;   & lt; list>   & lt; !——这里支持多种寻址方式:类路径和文件——比;   & lt; value>类路径:/opt/演示/config/demo-db.properties   & lt; !——推荐使用文件的方式引入,这样可以将配置和代码分离——比;   & lt; value>文件:/opt/演示/config/demo-mq.properties   & lt; value>文件:/opt/演示/config/demo-remote.properties   & lt;/list>   & lt;/property>   & lt;/bean>      & lt; !——使用MQ中的配置——比;   & lt; bean id=癕QJndiTemplate”类=皁rg.springframework.jndi.JndiTemplate”比;   & lt;属性名="环境"比;   & lt; props>   & lt;支撑关键=" java.naming.factory.initial "在$ {mq.java.naming.factory.initial} & lt;/prop>   & lt;支撑关键=" java.naming.provider.url "在$ {mq.java.naming.provider.url} & lt;/prop>   & lt;支撑关键=" java.naming.security.principal "在$ {mq.java.naming.security.principal} & lt;/prop>   & lt;支撑关键=" java.naming.security.credentials "在$ {mq.java.naming.security.credentials} & lt;/prop>   & lt;支撑关键="用户名"在$ {mq.java.naming.security.principal} & lt;/prop>   & lt;支撑关键=懊苈搿痹? {mq.java.naming.security.credentials} & lt;/prop>   & lt;/props>   & lt;/property>   & lt;/bean>   & lt;/beans>   之前      

,我们也可以将配置中抽的列表取出来:

        & lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比;   & lt;豆类xmlns=" http://www.springframework.org/schema/beans "   xmlns: xsi=" http://www.w3.org/2001/XMLSchema-instance "   xsi: schemaLocation="   http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd”比;      & lt; !——将多个配置文件位置放到列表中——比;   & lt; bean id=皃ropertyResources”类=癹ava.util.ArrayList”比;   & lt; constructor-arg>   & lt; list>   & lt; !——这里支持多种寻址方式:类路径和文件——比;   & lt; value>类路径:/opt/演示/config/demo-db.properties   & lt; !——推荐使用文件的方式引入,这样可以将配置和代码分离——比;   & lt; value>文件:/opt/演示/config/demo-mq.properties   & lt; value>文件:/opt/演示/config/demo-remote.properties   & lt;/list>   & lt;/constructor-arg>   & lt;/bean>      & lt; !——将配置文件读取到容器中,交给弹簧管理——比;   & lt; bean id=皃ropertyConfigurer”类=皁rg.springframework.beans.factory.config.PropertyPlaceholderConfigurer”比;   & lt;属性名="位置" ref=" propertyResources "/比;   & lt;/bean>      & lt; !——使用MQ中的配置——比;   & lt; bean id=癕QJndiTemplate”类=皁rg.springframework.jndi.JndiTemplate”比;   & lt;属性名="环境"比;   & lt; props>   & lt;支撑关键=" java.naming.factory.initial "在$ {mq.java.naming.factory.initial} & lt;/prop>   & lt;支撑关键=" java.naming.provider.url "在$ {mq.java.naming.provider.url} & lt;/prop>   & lt;支撑关键=" java.naming.security.principal "在$ {mq.java.naming.security.principal} & lt;/prop>   & lt;支撑关键=" java.naming.security.credentials "在$ {mq.java.naming.security.credentials} & lt;/prop>   & lt;支撑关键="用户名"在$ {mq.java.naming.security.principal} & lt;/prop>   & lt;支撑关键=懊苈搿痹? {mq.java.naming.security.credentials} & lt;/prop>   & lt;/props>   & lt;/property>   & lt;/bean>   & lt;/beans>   

春天中配置和读取多个属性文件的方式方法