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

时间:2015-11-27 14:24:09

标签: java spring rest spring-rest

我使用spring-rest创建了一些@RestController servlet。该应用程序不是在Web服务器上运行,而是作为一个带有嵌入式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"; }
}

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

以下是介绍如何更改执行器端口的指南 - https://spring.io/guides/gs/actuator-service/