42
有沒有人有過如何使用Google Guice從.properties文件注入屬性的例子。有人告訴我,當噴油器啓動時,Guice能夠驗證所有需要的屬性。Guice和屬性文件
此時我無法在guice wiki上找到關於此的任何內容。
有沒有人有過如何使用Google Guice從.properties文件注入屬性的例子。有人告訴我,當噴油器啓動時,Guice能夠驗證所有需要的屬性。Guice和屬性文件
此時我無法在guice wiki上找到關於此的任何內容。
可以綁定使用Names.bindProperties(binder(), getProperties())
,其中getProperties
返回Properties
對象或Map<String, String>
(讀取屬性文件作爲Properties
對象是由你)屬性。
然後,您可以通過名稱使用@Named
注入它們。如果你有一個屬性文件:
foo=bar
baz=true
你可以注入這些屬性的值,任何你想要的東西,像這樣:
@Inject
public SomeClass(@Named("foo") String foo, @Named("baz") boolean baz) {...}
吉斯可以從字符串類型的值轉換注入,如上面的boolean
自動(假設字符串是一個適當的格式)。這適用於原始類型,枚舉和類文字。
注意,使用guice 3.0-rc2(當前最新版本),這隻適用於從guice。*包導入@Named,而不是javax.inject.Named。 – 2011-02-19 14:52:06
@ mjg123:這不應該是真的......我實現了使Guice'@ Named'和'@ javax.inject.Named'自己互換的功能。請參閱測試[此處](http://code.google.com/p/google-guice/source/browse/trunk/core/test/com/google/inject/name/NamedEquivalanceTest.java),其中包含測試這與'Names.bindProperties'一起工作。你試過了嗎? – ColinD 2011-02-19 15:05:16
是的,我確實嘗試過 - 我在看這個頁面,因爲我和OP有同樣的問題。我發現,特別是針對'boolean'注入的情況,它*確實*重要,但我承認我遠離Guice的專家。 – 2011-03-02 20:02:22