我可以这样做:

  <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也存在。谢谢大家。

有帮助吗?

解决方案

使用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 允许通过命令行覆盖属性。

其他提示

使用占位符,例如 $ {magic} ,并在属性文件中定义键/值以及PostProcessor。 Google for spring post processor placeholder ...

我认为你根本没有任何优势。这一切仍然只是配置。

有时人们会将数据库连接字符串外部化为.properties文件并以这种方式获取它们。我认为这比你的建议更有意义。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top