是否可以通过@controller上的端点从前端(使用thymeleaf)更改spring引导端口?如何使用新配置的端口以编程方式重新启动应用程序?
cxfofazt1#
如这里所述,您可以这样设置服务器端口:
import org.springframework.boot.web.server.ConfigurableWebServerFactory; import org.springframework.boot.web.server.WebServerFactoryCustomizer; import org.springframework.stereotype.Component; @Component public class AppCustomContainer implements WebServerFactoryCustomizer<ConfigurableWebServerFactory> { @Override public void customize(ConfigurableWebServerFactory factory) { factory.setPort(1234); } }
代替1234,您可以使用文件来存储端口(更改端口时)并在启动时加载它之后,您可以按以下说明重新启动应用程序:添加致动器和Spring云:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter</artifactId> <version>2.0.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
在中启用重新启动 application.properties : management.endpoint.restart.enabled = true 在的示例中添加 RestartEndpoint :
application.properties
management.endpoint.restart.enabled = true
RestartEndpoint
@Autowired private RestartEndpoint restartEndpoint;
运行此命令以重新启动:
Thread restartThread = new Thread(restartEndpoint::restart); restartThread.setDaemon(false); restartThread.start();
1条答案
按热度按时间cxfofazt1#
如这里所述,您可以这样设置服务器端口:
代替1234,您可以使用文件来存储端口(更改端口时)并在启动时加载它
之后,您可以按以下说明重新启动应用程序:
添加致动器和Spring云:
在中启用重新启动
application.properties
:management.endpoint.restart.enabled = true
在的示例中添加RestartEndpoint
:运行此命令以重新启动: