Библиотека переопределения-пригодной конфигурации помогает разработчикам Scala поддерживать файлы конфигураций config, используя скаласские макросные аннотации.
Создайте трейт в стиле конфигурации как определение конфигурации, например:
import com.wacai.config.annotation._
import scala.concurrent.duration._
@conf trait Kafka {
val server = new {
val host = "wacai.com"
val port = 12306
}
val socket = new {
val timeout = 3 seconds
val buffer = 1024 * 64L
}
val client = "wacai"
}
Используйте конфигурацию путём расширения её,
class Consumer extends Kafka {
val client = new SimpleConsumer(
server.host,
server.port,
socket.timeout,
socket.buffer,
client
)
...
}
Скомпилируйте, @conf
позволит компилятору Scala вставить код в Kafka.scala
:
trait Kafka {
val server = new {
val host = config.getString("kafka.server.host")
val port = config.getInt("kafka.server.port")
}
val socket = new {
val timeout = Duration(config.getDuration("kafka.socket.timeout", SECONDS))
val buffer = config.getBytes("kafka.socket.buffer")
}
val client = config.getString("kafka.client")
...
}
После этого будет сгенерирован файл конфигурации kafka.conf
, расположенный в src/main/resources
следующего содержания:
kafka {
server {
host = wacai.com
port = 12306
}
socket {
timeout = 3s
buffer = 64K
}
client = wacai
}
Наконец, требуется создать файл application.conf
для включения kafka.conf
следующим образом:```
include "kafka.conf"
## Установка
> Внимание: поддерживается только Scala 2.11.0+
Установите ваш `project/build.properties` следующим образом:
sbt.version = 0.13.13
Установите ваш `build.sbt` следующим образом:
```scala
addCompilerPlugin("org.scalamacros" % "paradise" % "2.0.1" cross CrossVersion.full)
libraryDependencies += "com.wacai" %% "config-annotation" % "0.3.5"
Версия v0.3.6 для Scala 2.12.0+
|----------|--------------------|---------------| | Boolean | getBoolean | true/false | | Int | getInt | число | | Double | getDouble | число с плавающей запятой | | String | getString | текст | | Long | getBytes | число с единицей измерения (B, K, M, G) | | Duration | getDuration | число с единицей измерения (ns, us, ms, s, m, h, d)|
import com.wacai.config.annotation._
@conf trait Kafka extends Configurable { self: Actor =>
def config = context.system.settings.config
...
}
Конфигурационные файлы создаются по умолчанию в директории src/main/resources
.
Директория может быть изменена путём добавления макросных настроек в scalacOptions
в файле build.sbt
:
scalacOptions += "-Xmacro-settings:conf.output.dir=/путь/к/выходной/директории"
Пожалуйста, обратитесь к примеру использования аннотаций конфигураций.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )