spring配置⽂件属性设置默认值以及读取环境变量值
在 Spring 中为 javabean 注⼊属性⽂件中的属性值⼀般⼈都知道的,可以通过  引⼊⼀个属性⽂件,然后给 bean 指定属性的时候就可以⽤ ${jdbc.url} ⽅式赋值了。⽐如在 Spring 中是这样的配置:
谭松韵资料<bean id="dataSource" class="org.apachemons.dbcp.BasicDataSource"
destroy-method="close">
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
</bean>
有时候我们需要给 bean 赋上系统属性(Properties() ) 中的值或环境变量(v() ) 中的值、亦或是设置默认值,根据程序所处的环境产⽣不同的⾏为,这样我们⽆法事先在某个 properties ⽂件预先设定好值的。
从 的 JavaDoc API 可知,它不光能从属性⽂件⾥取值,也能从系统属性,甚⾄是环境变量中取值。
但是默认情况下,也就是没有显⽰配置 bean时,它既不会从环境变量读取,也不会给设置默认值,所以如果在properties中不到,就会提⽰⽆法转换数据类型等等错误。童话二分之一吻戏
因此,必须显⽰设置,如下:
小虎子<bean id="propertyConfigurer"class="org.springframework.fig.PropertyPlaceholderConfigurer"/>
<!-- 配置redis 缓存服务器 -->
<bean id="connectionFactory" class="org.tion.jedis.JedisConnectionFactory">
<property name="hostName" value="${redis.ip:127.0.0.1}"/>
<property name="port" value="${redis.port:6379}"/>
<property name="password" value="${redis.password:Ld123123}"/>
</bean>
<bean id="routeRabbitMQConnectionFactory" class="com.ld.rabbitmq.MutiConnectionFactory">
tik tok歌词
<property name="mutiAddress">
读取配置文件失败<list>
<value>outerMQ:5672</value>
</list>
</property>
<property name="username" value="${RABBITMQ_USER}"/>
免费视频剪辑软件<property name="password" value="${RABBITMQ_PWD}"/>
<!-- <property name="password" value="ldld!@#$%" /> -->
<property name="virtualHost" value="${OUTERMQ_VHOST}"/>
<property name="automaticRecoveryEnabled" value="true"/>
</bean>