Java 通过编程方式打开和关闭Tomcat,以获得弹簧靴支撑

Java 通过编程方式打开和关闭Tomcat,以获得弹簧靴支撑,java,spring-boot,spring-rest,Java,Spring Boot,Spring Rest,当我的Spring Boot Rest应用程序已经运行时,我希望能够通过编程随意打开和关闭Rest功能,而不必重新启动应用程序 我该怎么做呢 编辑:当我说关闭Rest功能时,我的字面意思是Tomcat停止监听端口。当它打开时,它会再次开始监听端口。我可以看到两种可能的解决方案: 通过创建负责在特定时间打开和关闭端口的计划任务来关闭计算机上的端口 在Spring中,您想要做的可以归结为配置更改。SpringBoot提供了一种标准方法来刷新配置更改,而无需重新启动应用程序。这是通过以下方式实现的。您

当我的Spring Boot Rest应用程序已经运行时,我希望能够通过编程随意打开和关闭Rest功能,而不必重新启动应用程序

我该怎么做呢


编辑:当我说关闭Rest功能时,我的字面意思是Tomcat停止监听端口。当它打开时,它会再次开始监听端口。

我可以看到两种可能的解决方案:

  • 通过创建负责在特定时间打开和关闭端口的计划任务来关闭计算机上的端口

  • 在Spring中,您想要做的可以归结为配置更改。SpringBoot提供了一种标准方法来刷新配置更改,而无需重新启动应用程序。这是通过以下方式实现的。您可以做的是用可刷新的自定义bean覆盖默认Tomcat bean。然后,您可以创建一个任务(通过CI、schedueled脚本…)来更新配置(您可以提供配置作为Env变量)并刷新应用程序的bean


  • 第一个解决方案要容易得多。第二种方法需要在应用程序内部进行更多的开发。

    如何关闭/打开它?穿过威奇门?这是怎么回事?我想到了两个问题。是否要为所有其余端点禁用该选项,还是拾取并选择?关闭时,应该返回什么HTTP响应?@tmarwen在我的代码中的某个地方,例如每天上午12点,它停止侦听REST端口上的任何调用,每天早上6点,它开始再次侦听该端口。哦,好的。我们在过去为类似场景所做的一件事是拥有一个负载平衡器将调用的keepAlive API。当调用/keepAlive端点时,微服务可以通过编程方式响应错误(或关闭)。保持活动端点是现代负载平衡器的一个常见功能。您知道网络中的负载平衡器是否支持该功能吗?您可以让负载平衡器指向反向代理,如Nginx或apachehttp服务器。这些服务器可以将所有请求代理给Tomcat microservice。微服务中的一组代码可以控制本地代理的停止和启动。