properties配置文件在spring中的取值方式


Spring在XML文件中(注册Bean),可以通过${属性名}使用properties文件配置的值;在代码中使用@Value注解读取properties的属性值。

一、Spinrg的Bean XML定义中,可以通过${属性名}使用properties文件配置的值

  加载properties配置文件,如下是写法比较简单的方式: 

  单一配置文件加载:

  <context:property-placeholder location="classpath:jdbc.properties"/>

  使用通配符“*”配置多个文件,个人比较倾向于通配符的写法:

  <context:property-placeholder location="classpath:conf/*.properties" />

  加载多个配置文件通常还有如下的写法:

<bean id="propertyResources" class="java.util.ArrayList">  

  <constructor-arg>  

    <list>  

      <!-- 这里支持多种寻址方式:classpath和file -->  

      <value>classpath:/opt/demo/config/demo-db.properties</value>  

      <!-- 推荐使用file的方式引入,这样可以将配置和代码分离 -->  

      <value>file:/opt/demo/config/demo-mq.properties</value>  

      <value>file:/opt/demo/config/demo-remote.properties</value>  

    </list>  

   </constructor-arg>  

</bean>  

配置文件中的取值方式${属性名}

<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="10" />
  <property name="minIdle" value="5" />
</bean>

二、使用@Value注解读取properties文件配置的值,再给字段赋值

@Value的值有三种类型,#{} 、${} 和 #{'${}'} ,其实是#{}和${}这两种类型,#{'${}'} 这种是前两种的嵌套使用

1、  #{expression?:default value}

properties配置文件中的属性名称不能带点,否则取不到值,会报错。如下案例其中prop为spring配置文件中的bean  ID值。

@Value("#{prop.name}")
 
     @Value("#{prop.age}")
2、${property:default value}
  ${}这种值,只用来读取properties配置文件中的属性值, :  前面的是属性名称,:  后面的是默认值。这种类型的值,却可以读取带点的属性值。
    @Value("${name}")
 
    @Value( "${age}")
3、#{'${}'}

这种类型的Value值,是#{}里面嵌套${}使用,所以必须按照上述的(1)(2)两种类型的实现方式,配置properties文件,才可以使用这种方式的值

    @Value("#{'${age}'}")

转载:https://blog.csdn.net/yh_zeng2/article/details/76222905


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM