【问题标题】:Environment based file pickup in MicronautMicronaut 中基于环境的文件拾取
【发布时间】:2021-02-20 15:05:28
【问题描述】:

尝试根据环境使用不同的配置文件。例如

在开发环境中,我有以下文件

application-dev.yml

micronaut:
  security:
    enabled: true
    token:
      jwt:
        enabled: true
        signatures:
          jwks:
            IdentityServer:
              url: 'https://localhost:5001/.well-known/openid-configuration/jwks'

对于另一个环境,我有以下配置

application.yml

micronaut:
  application:
    name: feteBirdApigateway
  server:
    port: 8080
    cors:
      enabled: true
  security:
    enabled: true
    token:
      jwt:
        enabled: true
        signatures:
          jwks:
            IdentityServer:
              url: 'https://falconidentityserver.azurewebsites.net/.well-known/openid-configuration/jwks'

现在,当我在 intellj 中运行应用程序时,应用程序正在使用文件 applicaiton.yml。它应该选择application-dev.yml 和值url: 'https://localhost:5001/.well-known/openid-configuration/jwks',但它是从application.yml 中选择值。但是,它应该只从 dev 文件中选择该值,而所有其他值应该从 application.yml 中选择

根据 micronaut 文档 https://docs.micronaut.io/latest/guide/index.html#environments 我需要设置 micronaut.environments

当我在本地机器上运行应用程序时,它不应该选择application-dev.yml。如何设置环境

【问题讨论】:

    标签: java micronaut micronaut-client micronaut-rest


    【解决方案1】:

    我不确定从 IDE 运行时是否应该自动选择“dev”。但是,您可以通过在 IntelliJ 运行/调试配置中传递这两个 JVM 变量来覆盖环境:

    -Dmicronaut.environments=dev
    -Dmicronaut.env.deduction=false
    

    【讨论】:

    • 是否可以从 application.yml 文件中设置环境?和 SPRING 框架一样
    • @SanJaisy 据我所知,但我仍在学习
    【解决方案2】:

    在main方法中设置默认环境

    public class ApiGatewayApplication {
    
        public static void main(String[] args) {
            Micronaut.build((String[]) null).defaultEnvironments("dev").start();
        }
    }
    

    参考 - https://github.com/micronaut-projects/micronaut-core/issues/2417

    【讨论】:

      猜你喜欢
      • 2019-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-22
      • 1970-01-01
      • 2021-10-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多