如何设置 Micronaut 上下文路径
Posted
技术标签:
【中文标题】如何设置 Micronaut 上下文路径【英文标题】:How to Set Micronaut Context Path 【发布时间】: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)也是如此。 【参考方案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 变量,否则默认为“/”(没有特定的上下文路径)。
【讨论】:
以上是关于如何设置 Micronaut 上下文路径的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Jhipster (spring boot + angular) 应用程序上设置上下文路径
如何在 angular2 路由中正确设置应用程序上下文路径?
使用 Maven 时如何在 Tomcat 7.0 中将上下文路径设置为 root("/")