我可以这样做:
<object id="mydb" type="string">
<value>"blah"</value> <-- note that <value> tag does not really exist
</object>
所以我可以稍后使用它:
<object id="Someobject" type="Sometype">
<property name="ConnectionString" ref="mydb"/>
</object>
编辑:这是我正在寻找的SpringFramework.NET解决方案。看起来PropertyPlaceholderConfigurer也存在。谢谢大家。
答案 0 :(得分:2)
使用Spring的内置PropertyPlaceholdConfigurer:
<bean id="PropertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/>
<property name="location" value="classpath*:/application.properties"/>
</bean>
<bean id="Someobject" class="somepackage.Sometype">
<property name="connectionString" value="${mydb}"/>
</bean>
设置SYSTEM_PROPERTIES_MODE_OVERRIDE
允许通过命令行覆盖属性。
答案 1 :(得分:1)
使用占位符,例如 $ {magic} ,并在属性文件中定义键/值以及PostProcessor。 Google for spring post processor placeholder ...
答案 2 :(得分:0)
我认为你根本没有任何优势。这一切仍然只是配置。
有时人们会将数据库连接字符串外部化为.properties文件并以这种方式获取它们。我认为这比你的建议更有意义。