2015-06-04 2 views
0

Я читал документы Akka v2.3.11 (Java, не Scala), и я все еще немного смущен о том, как работает настройка. В разделе 2.9.2 («Акку и JAR комплектации») говорится:Akka default vs конфигурация времени исполнения

конфигурации подход AKKA в значительной степени опирается на представление каждого модуля/банку, имеющий свой собственный файл reference.conf, все они будут обнаруженные конфигурацией и загруженные. К сожалению, это также означает, что если вы поместите/объедините несколько банок в одну банку, вам также необходимо объединить все reference.confs. В противном случае все значения по умолчанию будут потеряны, и Akka не будет функционировать.

Будучи совершенно новый Акку и актеров, но побывав разработчик Java для 10+ лет, у меня есть никогда однажды видел reference.conf файл в любом JAR. Так о чем говорит Акка? Они намекают, что если мой проект Akka использует, скажем, Guice и Guava, что мне нужно определить файлы reference.conf для каждого из этих?!?

Кроме того, может кто-то подтвердить мое понимание application.conf vs reference.conf? Мой понимание заключается в том, что вы должны определить reference.conf, который содержит конфигурации по умолчанию Akka, а также определить application.conf, который переопределяет его? Если это правда, зачем использовать reference.conf? Почему бы просто не использовать application.conf? Я весьма озадачен.

ответ

1

Akka использует конфигурационную библиотеку типов, ознакомьтесь с документацией https://github.com/typesafehub/config/blob/master/README.md, которая объясняет разницу между reference.conf и application.conf.

В основном reference.conf поставляется с библиотеками Akka, пользователь не должен прикасаться к нему (но может использовать его в качестве ссылки), если не слить несколько банок (не обязательно akka jars), которые используют библиотеку configate config в одну банку.

+0

Ahh thanks @kostya (+1) - так, чтобы подтвердить: (1) 'reference.conf' доступен только в библиотеках Akka (модули/плагины), а configafe configafe знает, чтобы переопределить их значения по умолчанию, указанные в 'application.conf', ** да ?? ** Еще раз спасибо! – smeeb

+0

Да, это правильно – kostya

Смежные вопросы