Недавно я читаю какой-то код scala, который использует Guice для внедрения конфигурации Typesafe. Мне кажется, что это просто волшебство c, как это работает. Мой вопрос: как интерпретировать этот код? Вводит ли Guice все эти значения конфигурации, считанные из sbt-assembly, в типизированный config автоматически?
Scala код:
class FooImpl @Inject() (
config: Config
) extends Foo {
private val myConfig = "section.foo"
override val batchSize = config.getInt(s"$myConfig.batchSize")
.....
}
In Setting. scala
object Settings {
...
assemblyMergeStrategy in assembly := {
case "prod.conf" => MergeStrategy.concat
case x =>
val oldStrategy = (assemblyMergeStrategy in assembly).value
oldStrategy(x)
}
...
In prod.conf
section {
foo {
batchSize = 10000
...