spring 读取配置文件的方法

来源:互联网 发布:网络硬件系统包括什么 编辑:程序博客网 时间:2024/05/20 00:11
spring 读取配置文件的方法  

<!-- JDBC参数配置 -->

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

 <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />

 <property name="ignoreResourceNotFound" value="true" />

 <property name="ignoreUnresolvablePlaceholders" value="true" />

  <property name="locations">

   <list>

   <!-- 单元测试配置 -->

    <value>classpath:config/config.properties</value>

    <value>classpath:config/ofcard.properties</value>

   <!-- 自测配置 -->

    <value>/WEB-INF/conf/config.properties</value>

    <value>/WEB-INF/conf/ofcard.properties</value>

   <!-- 生产环境 -->

   <value>file:/apps/conf/config.properties</value>

   <value>file:/apps/conf/ofcard.properties</value>

   </list>

  </property>

</bean>

PropertyPlaceholderConfigurer 这个类是spring用来处理系统配置文件并且具有将spring配置文件中的以${properties}的形式替换成key为properties的value其中成员变量systemPropertiesModeName是用来指示后面的配置文件中的值是否会覆盖前面的值默认情况下如果配置文件中有不能解析的占位符则会抛出异常ignoreUnresolvablePlaceholders用来指示忽略此异常,ignoreResourceNotFound用来指示如果文件找不到则忽略以上locations中一个文件配置了3个地方是为了在单元测试和自测已经生产环境下使用这样配置文件的放置的位置就会更灵活。
有人会问systemPropertiesModeName 这可以设置的几个值分别代表什么含义通过阅读PropertyPlaceholderConfigurer中的setSystemPropertiesMode方法上面的注释可以发现:
     * Set how to check system properties: as fallback, as override, or never.
     * For example, will resolve ${user.dir} to the "user.dir" system property.
     * <p>The default is "fallback": If not being able to resolve a placeholder
     * with the specified properties, a system property will be tried.
     * "override" will check for a system property first, before trying the
     * specified properties. "never" will not check system properties at all.
     * @see #SYSTEM_PROPERTIES_MODE_NEVER
     * @see #SYSTEM_PROPERTIES_MODE_FALLBACK
     * @see #SYSTEM_PROPERTIES_MODE_OVERRIDE
fallback模式:在解析一个占位符的变量的时候,如果不能获取到该变量的值,就会拿系统属性来尝试,
override模式:在解析一个占位符的时候,会先用系统属性来尝试,然后才会用指定的属性文件,
never模式:从来都不会使用系统属性来尝试。
本人在系统属性这个概念上纠结了很长时间,后来尝试的用System.getProperties的方法打印出所有的jvm的系统属性发现user.dir是jvm的一个内置系统属性,到了这边我才明白原来spring配置文件中时可以直接用${}的形式来使用jvm的系统属性的,打完收工,以后下班宁愿直接走也不在公司玩游戏了影响不好。加油!!!!!!!!!

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 8个月的宝宝咳嗽怎么办 坐完月子掉头发怎么办 在香港买到假货怎么办 用气垫脸上浮粉怎么办 不够奶给宝宝吃怎么办 叶插发芽发根后怎么办 多肉植物摊大饼怎么办 英短蓝猫掉毛怎么办 英短蓝猫很凶怎么办 面部打伤怎么办了肿了 朋友欠钱一直拖怎么办 旧车三年不年检怎么办 遇到领导整你该怎么办 皮肤热了就瘙痒怎么办 猫爪子肉垫脏了怎么办 嘴周围干燥起皮怎么办 下嘴唇总是起皮怎么办 上嘴唇老是起皮怎么办 涂口红嘴唇起皮怎么办 上嘴唇干裂起皮怎么办 9岁儿童嘴唇干裂怎么办 上嘴唇干裂烂了怎么办 孕妇脚干的裂开怎么办 小腿皮肤干燥起皮怎么办 秋天脸干燥起皮怎么办 脚上干燥起皮怎么办 脚皮肤干燥起皮怎么办 脚有脚气脱皮又痒怎么办 脚特别干还脱皮怎么办 皮肤干燥起皮怎么办痒 脚一直脱皮怎么办不痒 我的脚老是起皮怎么办? 脚裂了怎么办 小妙招 牛不吃草不倒嚼怎么办 婴儿吸奶乳头痛怎么办 公犬的生殖肿了怎么办 大阴唇一边肿了怎么办 小阴唇比大阴唇大怎么办 儿童9岁外阴白斑怎么办 总想睡觉没精神怎么办 6岁宝宝睡觉打鼾怎么办