Типичное приложение DropWizard определяет подкласс Application и переопределяет его метод initialize
следующим образом:
class MyApplication extends Application<MyConfiguration> {
static void main(String[] args) {
new MyApplication().run(args)
}
@Override
public void initialize(Bootstrap<MyConfiguration> bootstrap) {
// ???
}
@Override
public void run(MyConfiguration configuration, Environment environment)
throws Exception {
// Register resources, health checks, etc.
}
}
После просмотра документов DropWizard, а также JavaDocs для:
Configuration
- Объектное представление файла конфигурации YAML. Расширьте это с помощью собственных свойств конфигурации, и они также будут проанализированы из файла YAML.Bootstrap
a> — предстартовая среда приложения, содержащая все необходимое для начальной загрузки команды Dropwizard.Environment
a> - Окружение приложения Dropwizard.
Но это довольно расплывчатые определения классов, особенно последние два. Я понимаю, что я должен создать подкласс Configuration
и что он представляет собой POJO в памяти файла конфигурации YAML/JSON моего приложения.
Но я не могу понять, что представляют собой остальные конструкции (Bootstrap
и Environment
). Я привык внедрять в свои приложения конфигурации для конкретной среды, поэтому я склонен думать о понятиях "среда" и "конфигурация" как об одном и том же.
Кроме того, кажется, что DropWizard тесно связывает Bootstrap
экземпляров с Configuration
экземплярами impl, но я не могу найти наглядных примеров того, чем эти два класса отличаются друг от друга и как их следует использовать.
Поэтому я спрашиваю:
- Что такое
Bootstrap
, для чего я его использую? - Что такое
Environment
и для чего его использовать?