Как работает DropWizard Web Server?
Ниже приведена простая программа, взятая со страницы "Начало работы" DropWizard:
package com.example.helloworld;
import com.yammer.dropwizard.Service;
import com.yammer.dropwizard.config.Bootstrap;
import com.yammer.dropwizard.config.Environment;
public class HelloWorldService extends Service<HelloWorldConfiguration> {
public static void main(String[] args) throws Exception {
new HelloWorldService().run(args);
}
@Override
public void initialize(Bootstrap<HelloWorldConfiguration> bootstrap) {
bootstrap.setName("hello-world");
}
@Override
public void run(HelloWorldConfiguration configuration,
Environment environment) {
// nothing to do yet
}
}
Я понимаю, что приведенный выше метод main() выполняется DropWizard, который, в свою очередь, вызывает метод run(). Код внутри метода run() написан пользователями и обычно включает в себя регистрацию ресурсов и прочего.
Я не вижу здесь никакого блокирующего фрагмента кода (например, бесконечный цикл while). Что мешает этому приложению просто выйти после выполнения метода run()?
Есть ли какая-то фундаментальная вещь, по которой я скучаю?