Spring中
配置文件
//单一配置文件
<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>
@Value注解读取properties文件配置的值,再给字段赋值
@Value的值有三种类型,#{} 、${} 和 #{'${}'} ,其实是#{}和${}这两种类型,#{'${}'} 这种是前两种的嵌套
1 #{expression?:default value}
SpEL都是#{}的格式
expression 指的是 SpEl表达式 通常用来获取bean的属性,或者调用bean的某个方法
properties配置文件中的属性名称不能带点,否则取不到值,会报错
比如 prop为spring配置文件中的beanId值
@Value("#{prop.name}")
2 ${property:default value}
${}这种值,只用来读取properties配置文件中的属性值,可以读取带点的属性值
spel表达式相关参考
参考1
参考2