Как инициализировать ApplicationContext и / или среду - PullRequest
0 голосов
/ 25 февраля 2019

Типичная точка входа в приложение выглядит следующим образом:

public static void main(String[] args) {
    Micronaut.run(Application.class);
}

Однако документы указывают, что среду и контекст приложения можно настроить:

Например, https://docs.micronaut.io/1.1.0.M1/guide/index.html#propertySource,

void initializeTheEnvironment() {
    ...
    ApplicationContext applicationContext = ApplicationContext.run(
            PropertySource.of(
                    "test",
                    CollectionUtils.mapOf(
                        "micronaut.server.host", "foo",
                        "micronaut.server.port", 8080
                    )
            ),
            "test", "android");
    Environment environment = applicationContext.getEnvironment();

    ... what to put here to then run the application using the customizations above ... ?
}

Если я: - настраиваю Среду (как описано выше) - вставляю экземпляр Среды в Контроллер - тогда, чтобы запустить приложение, я просто продолжаю использовать Micronaut.run ()

... тогда я вижу, что мои настройки не видны в внедренном экземпляре Environment.

Вопрос: как получить инициализированный ApplicationContext и / или Environment, как мне запустить приложениеиспользуя эту среду?

Есть ли способ передать эти построенные объекты в Micronaut.run (...)?

Является ли это ненужным, потому что Микронавт каким-то образом за кадром подбирает уже инициализированные экземпляры объектов?

Я, вероятно, упускаю что-то очень очевидное, или это просто не ожидаемый способ использования платформы, но мне любопытно, так как документы явно вызывают эту настройку в нескольких местах ...

1 Ответ

0 голосов
/ 25 февраля 2019

Вы можете сделать следующее, чтобы достичь желаемого:

Micronaut.build()
    .mainClass(Application.class)
    .propertySources(PropertySource.of(
        "test",
        CollectionUtils.mapOf(
            "micronaut.server.host", "foo",
            "micronaut.server.port", 8080
        )
    ))
    .environments("test", "android")
    .start()
...