我使用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"; }
}
答案 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/