在 Scaldi 中,我加载了自己的类型安全配置,如何设置 Scaldi 使其可用?
In Scaldi, I loaded my own typesafe config, how can I set Scaldi to make it available?
我想从配置文件加载我自己的配置。加载配置后,我希望能够使用 Scaldi 注入配置值。这是我加载类型安全配置的代码。我如何调整此代码以便我可以使用此模块并像这样注入:val localValue = inject [String] ("property.name")
package somepackage
import java.io.File
import com.typesafe.config.ConfigFactory
import scaldi._
class GlobalModule extends Module {
privateLoadConfig()
private def privateLoadConfig() = {
val c = System.getProperty("jumpmicro.config.path")
val configPath = if (c == null) "jumpmicro.conf" else c
if (configPath != null) {
val f = new File(configPath)
if (f.exists()) {
val config = ConfigFactory.parseFile(f)
// @todo What to do here?
}
}
}
}
以下应该适合您:
implicit val inj = TypesafeConfigInjector(ConfigPath) // or config, both work
val localValue = inject [String] ("property.name")
否则,您可以使用 ::
运算符 (http://scaldi.org/learn/#injector-composition)
将 TypesafeConfigInjector(ConfigPath)
附加到您的模块定义中
我想从配置文件加载我自己的配置。加载配置后,我希望能够使用 Scaldi 注入配置值。这是我加载类型安全配置的代码。我如何调整此代码以便我可以使用此模块并像这样注入:val localValue = inject [String] ("property.name")
package somepackage
import java.io.File
import com.typesafe.config.ConfigFactory
import scaldi._
class GlobalModule extends Module {
privateLoadConfig()
private def privateLoadConfig() = {
val c = System.getProperty("jumpmicro.config.path")
val configPath = if (c == null) "jumpmicro.conf" else c
if (configPath != null) {
val f = new File(configPath)
if (f.exists()) {
val config = ConfigFactory.parseFile(f)
// @todo What to do here?
}
}
}
}
以下应该适合您:
implicit val inj = TypesafeConfigInjector(ConfigPath) // or config, both work
val localValue = inject [String] ("property.name")
否则,您可以使用 ::
运算符 (http://scaldi.org/learn/#injector-composition)
TypesafeConfigInjector(ConfigPath)
附加到您的模块定义中