有人能否提供一个使用Google Guice从.properties文件中注入属性的示例?我被告知Guice能够在注入器启动时验证所有必需的属性是否存在。
目前我在guice wiki上找不到相关内容。
有人能否提供一个使用Google Guice从.properties文件中注入属性的示例?我被告知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) {...}
Guice可以自动将从字符串转换为注入的类型,比如上面的boolean
(假设字符串格式正确)。这适用于原始类型、枚举和类文字。
@Named
和@javax.inject.Named
相互替换。请查看此处中的测试,其中包括一个测试,以确保与Names.bindProperties
一起使用正常工作。你试过了吗? - ColinD@javax.inject.Named
和上面的示例(使用bindProperties
)再次尝试了一下,一切都正常。如果您在某些情况下必须使用Guice的@Named
,是否可以创建一个小测试来暴露它并在此处报告? - ColinD