在配置文件中很有一些属性会在团队的开发环境个人的开发环境集成测试环境生产环境甚至生产环境集群的每台服务器中都有所不同的 为了将这些易变的属性抽从applicationContext取出来Spring 做了一些特殊的支持
详见在 SpringSide里配置如下
<bean class=orgspringframewonfigPropertyPlaceholderConfigurer>
<property name=systemPropertiesModeName value=SYSTEM_PROPERTIES_MODE_OVERRIDE />
<property name=ignoreResourceNotFound value=true />
<property name=locations>
<list>
<value>classpath:applicationproperties</value>
<value>classpath:applicationlocalproperties</value>
<value>file:/var/myapp/applicationserverproperties</value>
</list>
</property>
</bean>
团队公用的开发环境配置在applicationproperties中放入版本控制系统管理中
个人的开发环境集成测试环境中与公共环境不相同的部分放入applicationlocalproperties中会覆盖 applicationproperties中的设置由个人管理不放入版本管理系统
在打包部署到生产环境时可将生产环境每台服务器的特殊属性可放在服务器的某个固定目录如/var/myapplicaiton /applicationserverproperties中(而不放在项目jar内) 每台服务器的配置文件分开不同服务器目录放在版本管理系统中也可以在启动命令中加入参数来覆盖如Djdbcusername=aaa