spring读取配置文件


1、xml文件中读取配置文件【以数据库的配置为例】

1.1 配置:
  方法一:<context:property-placeholder location="classpath:jdbc.properties"/>
  方法二:
  <bean id="propertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
   <property name="locations">
    <list>
     <value>jdbc.properties</value>
    </list>
   </property>
  </bean>
 
1.2 使用【${propertyKey}:propertyKey为配置文件的key值】:
  <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
     destroy-method="close">
   <property name="url" value="${jdbc.url}"/>
   <property name="username" value="${jdbc.username}"/>
   <property name="password" value="${jdbc.password}"/>
   <property name="driverClassName" value="${jdbc.driver}"/>
   <property name="maxActive" value="${jdbc.maxActive}"/>
   <property name="minIdle" value="${jdbc.minIdle}"/>
  </bean>

1.3  注意

       <context:property-placeholder />标签或者PropertyPlaceholderConfigurer的bean定义只能有一个,如果有多个,会读取先定义的,后定义的会被忽略

2、Java代码中读取配置文件【classpath:为项目编译后的编译代码根录,eg:myProject/WEB-INF/classes/】
 2.1 配置:
  方法一:<util:properties id="propertiesReader" location="classpath:commons.properties"/>
  方法二:
   <bean id="refProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
    <property name="locations">
     <list>
      <value>classpath:commons.properties</value>
     </list>
    </property>
   </bean>
 2.2 使用【@Value("#{PropertiesFactoryBeanId['propertyKey']}"):PropertiesFactoryBeanId为PropertiesFactoryBean的id(或者是<util:properties>标签的id),propertyKey为配置文件(*.properties)的key值】:
  @Component 
  public class SysConf { 
   
   @Value("#{propertiesReader['jdbc.ur']}") 
   private String jdbcUrl; 
   
   @Value("#{propertiesReader['jdbc.ur']}") 
   public void setTest(String jdbcUrl){ 
    jdbcUrl = jdbcUrl; 
   } 
   
   @Value("#{propertiesReader}") 
   public void setSysConf(Properties propertiesReader){ 
    jdbcUrl= propertiesReader.getProperty("jdbc.ur"); 
   } 
  } 

3、注意xm和Java注解的用法区别,xml用$,Java注解用#


1、xml文件中读取配置文件【以数据库的配置为例】 1.1 配置:
  方法一:<context:property-placeholder location="classpath:jdbc.properties"/>
  方法二:
  <bean id="propertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
   <property name="locations">
    <list>
     <value>jdbc.properties</value>
    </list>
   </property>
  </bean>
 
1.2 使用【 ${propertyKey}:propertyKey为配置文件的key值】:
  <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
     destroy-method="close">
   <property name="url" value="${jdbc.url}"/>
   <property name="username" value="${jdbc.username}"/>
   <property name="password" value="${jdbc.password}"/>
   <property name="driverClassName" value="${jdbc.driver}"/>
   <property name="maxActive" value="${jdbc.maxActive}"/>
   <property name="minIdle" value="${jdbc.minIdle}"/>
  </bean> 1.3  注意        <context:property-placeholder />标签或者PropertyPlaceholderConfigurer的bean定义只能有一个,如果有多个,会读取先定义的,后定义的会被忽略 2、Java代码中读取配置文件【classpath:为项目编译后的编译代码根录,eg:myProject/WEB-INF/classes/】
 2.1 配置:
  方法一:<util:properties id="propertiesReader" location="classpath:commons.properties"/>
  方法二:
   <bean id="refProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
    <property name="locations">
     <list>
      <value>classpath:commons.properties</value>
     </list>
    </property>
   </bean>
 2.2 使用【@Value(" #{PropertiesFactoryBeanId['propertyKey']}"):PropertiesFactoryBeanId为PropertiesFactoryBean的id(或者是<util:properties>标签的id),propertyKey为配置文件(*.properties)的key值】:
  @Component 
  public class SysConf { 
   
   @Value("#{propertiesReader['jdbc.ur']}") 
   private String jdbcUrl; 
   
   @Value("#{propertiesReader['jdbc.ur']}") 
   public void setTest(String jdbcUrl){ 
    jdbcUrl = jdbcUrl; 
   } 
   
   @Value("#{propertiesReader}") 
   public void setSysConf(Properties propertiesReader){ 
    jdbcUrl= propertiesReader.getProperty("jdbc.ur"); 
   } 
  }  3、注意xm和Java注解的用法区别,xml用$,Java注解用#

猜你喜欢

转载自375287760.iteye.com/blog/2410554