典型的应用程序入口点如下:
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和/或环境,然后如何使用该环境运行应用程序?
是否有办法将这些构造的对象传递给Micronaut.run(...)?
这是不必要的,因为Micronaut在后台以某种方式拾取了已经初始化的对象实例吗?
我可能缺少一些非常明显的东西,或者这根本不是使用框架的预期方式,但是我很好奇,因为文档在几个地方明确地声明了这种自定义...
答案 0 :(得分:1)
您可以执行以下操作来实现所需的目标:
Micronaut.build()
.mainClass(Application.class)
.propertySources(PropertySource.of(
"test",
CollectionUtils.mapOf(
"micronaut.server.host", "foo",
"micronaut.server.port", 8080
)
))
.environments("test", "android")
.start()