我目前正在使用spring.net進行依賴注入.net項目c#。我正在通過xml配置文件配置我的spring。在這我創建我的對象等用spring.net創建一個字符串對象
我想創建一個常量對象,在我的xml文件中的字符串值。這是可能的嗎?如果是這樣,我怎麼能做到這一點?我想繼續在多個地方使用這個值,因此我正在採用這種方法。
我目前正在使用spring.net進行依賴注入.net項目c#。我正在通過xml配置文件配置我的spring。在這我創建我的對象等用spring.net創建一個字符串對象
我想創建一個常量對象,在我的xml文件中的字符串值。這是可能的嗎?如果是這樣,我怎麼能做到這一點?我想繼續在多個地方使用這個值,因此我正在採用這種方法。
MyString的是單身,因爲春天的對象是單身默認
<object id="MyString" type="System.String" factory-method="Copy">
<constructor-arg index="0">
<value>SomeStringValue</value>
</constructor-arg>
</object>
下面是如何引用MyString
:
<object id="SomeObj" type="ExampleSpring.SomeObj, ExampleSpring">
<property name="Str" ref="MyString" />
</object>
我會建議封裝這個字符串作爲一個類的只讀字段,然後用Spring(或任何其他讀者使用的IoC)註冊該類作爲單一作用域。
這樣做的好處是,您不必強制嘗試解析字符串對象;您解析包含該字符串的對象(從而允許您擁有許多這樣的包含字符串的對象)。
如果您確實想要,可以在註冊對象時使用constructor-arg標記定義參數特定的注入值;這樣,當解析DatabaseObject時,當Spring遇到名爲「connectionString」的構造函數參數時,它應該提供您在XML中指定的特定文字。更多閱讀Rose India。
其他兩個答案給出合理的解決方法在配置字符串對象的容器。
如果您希望在配置文件中重新使用字符串常量,那麼您最好使用VariablePlaceholderConfigurer
。然後,你可以寫喜歡你的配置文件:
<object id="JohnUsingVariableSource"
type="XmlConfig.StringInjection.Person, XmlConfig">
<property name="Name" value="${JohnsFullName}" />
</object>
價值爲${JohnsFullName}
佔位符可以從許多variable sources配置如的app.config一個appSettings
部分或Java樣式屬性文件。
+1,從未想過這個 – Marijn