4

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"; }
}
4

2 回答 2

2

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

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

于 2015-11-27T14:35:00.567 回答
0

如果您使用的是 Spring Boot,我认为您应该查看Spring Boot Actuator。您的应用程序可以设置到一个端口,而执行器从另一个端口运行。

这是一个指南,显示如何更改执行器的端口 - https://spring.io/guides/gs/actuator-service/

于 2015-11-27T18:36:02.297 回答