如何在不同的端口上运行@RestController?

mem*_*und 6 java rest spring spring-rest

我正在用来spring-rest创建一些@RestControllerservlet。该应用程序不是在网络服务器上运行,而是作为带有嵌入式 tomcat 的简单命令行工具运行。

它们中的大多数应该在公共端口上运行,该端口是使用server.port=80属性指定的。

问题:如何@RestController在不同端口上运行不同的程序?那么其中一些只能在内部访问吗?

@RestController 
@RequestMapping("test")
public class TestServlet {

    @RequestMapping(value = "/", method = RequestMethod.GET, produces = MediaType.TEXT_PLAIN_VALUE)
    @ResponseStatus(HttpStatus.OK)
    @ResponseBody
    public String test() { return "OK"; }
}
Run Code Online (Sandbox Code Playgroud)

reo*_*eos 2

我建议使用代理。它可以是 Apache Web 服务器或 Ngix。您需要在网络服务器中配置两个虚拟主机(在不同的端口)。并将调用重定向到您的 tomcat 服务器。您可以在不同的路径中加载控制器,以便更轻松地代理来自网络服务器的调用。

最后,您的客户端通过 Web 服务器进行调用,而不是直接对 tomcat 进行调用。