一般来说,我是Micronaut和服务器端编程的新手。不幸的是,由于我没有Java背景,因此micronaut文档对我没有多大意义。许多术语如“ApplicationContext”在英语中都有意义,但我不知道如何在实践中使用它们。
尝试从一个非常基础的应用程序开始,该应用程序根据其所处的环境显示不同的配置(“localhost”,“dev”,“prod”)。
这是我的 Controller

@Controller("/")
class EnvironmentController {

    // this should return "localhost", "DEV", "PROD" depending on the environment
    @Get("/env")
    @Produces(MediaType.TEXT_PLAIN)
    fun env() = "???" // what should I put here ?

    // this should return the correct mongodb connection string for the environment
    @Get("/mongo")
    @Produces(MediaType.TEXT_PLAIN)
    fun mongo() = "???" // what should I put here ?
}
这是application.yml。理想情况下,每个环境我都会有1个yml文件
micronaut:
  application:
    name: myApp
  server:
    port: 8090

environment: localhost

mongodb:
  uri: 'mongodb://localhost:27017'
Application.kt cli工具生成的其余文件未更改mn。启动micronaut时,如何设置每个环境参数或将yml文件作为参数传递?
周围有什么约定吗?

最佳答案

您可以使用-Dmicronaut.environments指定环境,或者通过在Application类的上下文生成器Micronaut.run中指定环境。
https://docs.micronaut.io/latest/guide/index.html#environments
然后例如application-env.yml将被加载。
https://docs.micronaut.io/latest/guide/index.html#propertySource
文档对此很清楚

关于kotlin - 如何在Micronaut中使用特定于环境的变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62999149/

10-10 18:25