在Spring.config中,我可以定义string类型的对象吗?

时间:2009-05-01 21:51:07

标签: .net spring spring.net

我可以这样做:

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

3 个答案:

答案 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文件并以这种方式获取它们。我认为这比你的建议更有意义。