【问题标题】:How to Set Micronaut Context Path如何设置 Micronaut 上下文路径
【发布时间】:2019-01-20 14:55:53
【问题描述】:

如何为 micronaut 微服务设置上下文路径?我想做一些类似于 Spring Framework 中可用的操作,您可以在其中设置“server.servlet.contextPath”属性。我无法在 micronaut 文档here 中找到任何内容。我想为我的微服务和我的“bar”控制器(例如http://domain/foo/bar)设置一个基本路径。在 Spring 中,这看起来像

server:
  servlet:
    context-path: foo

我目前正在使用 micronaut 1.0.0.M4。感谢您的帮助。

【问题讨论】:

  • Micronaut 的非阻塞 HTTP 服务器基于 Netty。我认为 Netty 中没有“上下文”的概念——现在 Spring WebFlux(使用 Netty)也是如此。

标签: micronaut


【解决方案1】:

我想为我的微服务和我的“栏”设置一个基本路径 控制器(例如http://domain/foo/bar

如果您希望BarController 在向/foo/bar 发送请求时做出响应,那么一种方法是这样...

@Controller("/foo/bar")
public class BarController {

    @Get("/")
    public SomeReturnType index() {
        // ...
    }
}

【讨论】:

    【解决方案2】:

    也许不是您要找的答案,但您可以通过以下方式向控制器添加上下文路径

    @Controller("${micronaut.context.path:}/api"

    这适用于控制器,如果路径未定义,它将为您提供/api。对此的一个重要警告是,您的 swagger 文档将不再正常运行,因为编译时生成不考虑该属性并将其解析为 /api

    【讨论】:

      【解决方案3】:

      您可以在配置中设置上下文路径

      micronaut:
        server:
          context-path: /my-path
      

      文档:link

      【讨论】:

        【解决方案4】:

        使用 Micronaut 3 测试:

        micronaut:
          application:
            name: micronaut-demo
          server:
            context-path: ${ENV_CONTEXT_PATH:`/`}
        

        使用此配置,您可以将上下文路径定义为 env 变量,否则默认为“/”(没有特定的上下文路径)。

        【讨论】:

          猜你喜欢
          • 2015-09-09
          • 1970-01-01
          • 1970-01-01
          • 2019-08-22
          • 1970-01-01
          • 1970-01-01
          • 2011-02-23
          • 2017-04-22
          • 2012-03-13
          相关资源
          最近更新 更多