使用thymeleaf从前端更改spring引导应用程序的默认端口

rbl8hiat  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(342)

是否可以通过@controller上的端点从前端(使用thymeleaf)更改spring引导端口?
如何使用新配置的端口以编程方式重新启动应用程序?

cxfofazt

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 :

@Autowired
private RestartEndpoint restartEndpoint;

运行此命令以重新启动:

Thread restartThread = new Thread(restartEndpoint::restart);
restartThread.setDaemon(false);
restartThread.start();

相关问题