我有一个带有两个控制器的Spring应用程序。我想在localhost:8080
上运行一个控制器,在localhost:8081
上运行第二个控制器。
我是否可以将Tomcat配置为同时服务两个端口,即8080
和8081
?可能吗?怎么样?
请注意,它不是Spring Boot应用程序。
答案 0 :(得分:2)
听起来像两个完全不同的应用程序。
您当然可以将Tomcat的server.xml
文件配置为在不同端口上运行多个HTTP connectors。但是,您会发现处理两个不同的Tomcat实例更加容易和轻松。
答案 1 :(得分:0)
不。 spring在特定的端口上运行,它将是两个其余控制器的端口。不过,您可以为它们使用不同的URL。
答案 2 :(得分:0)
不可能。
Spring MVC和许多其他Web框架一样,都是围绕前端设计的 控制器模式,其中有一个中央Servlet,DispatcherServlet, 提供了用于请求处理的共享算法,而实际工作 由可配置的委托组件执行。
https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html
答案 3 :(得分:0)
Spring本身不在任何端口上运行。这只是一种创建API的技术。端口与服务器绑定(例如Tomcat,JBoss等)。因此,如果要将不同的端口用于不同的控制器,则需要在多个服务器上部署多个应用程序,并使这些服务器侦听不同的端口。
答案 4 :(得分:0)
在应该位于8081上的应用程序上,在application.properties文件中添加以下行:
然后只需运行它们两个...
否则,在TomcatConfiguration中将端口设置为8081,然后再次运行它们。
答案 5 :(得分:0)
您可以在下面的链接中找到完美的例子。他们为不同的资源使用不同的端口。它在春季启动时使用端口绑定和嵌入式tomcat。希望这对您有所帮助。
答案 6 :(得分:0)
是的,可以,但是它们的行为就像两个独立的应用程序,并且彼此独立。但是,他们可以共享公用资源,例如数据库,密码目录等。 但是对于这样的用例,我建议研究微服务。 Read more about microservices here
答案 7 :(得分:0)
App Server(Tomcat,JBoss,Glassfish)在/监视一个端口上运行。因此,您可以在具有不同端口号的单个节点(计算机)上运行多个应用程序服务器。它们可以相同(Tomcat + Tomcat),也可以不同(Tomcat + Glassfish)
但是在这种情况下,您需要将控制器分为2个不同的应用程序并将它们部署在应用程序服务器实例上。
这是MicroServices体系结构设计风格。当您为每个服务运行单独的应用程序服务器时。在大多数情况下,微服务服务使用REST over HTTP相互通信。
但是对于Tomcat(可能不是所有产品),可能是:Running Tomcat server on two different ports