首先实现这个需求需要解决2个问题
1.如何在代码内动态的制定端口
2.如何在启动时测试端口占用
1.动态配置端口:
参考:https://segmentfault.com/a/1190000014610478
springboot 2.x 方法:Application类实现
WebServerFactoryCustomizer<ConfigurableServletWebServerFactory>
接口,覆写customize方法
@Override
public void customize(ConfigurableServletWebServerFactory factory) {
((TomcatServletWebServerFactory)factory).addConnectorCustomizers(new TomcatConnectorCustomizer() {
@Override
public void customize(Connector connector) {
//在这里设置端口号,使用setPort方法
connector.setPort(8081);
//一些自定义调整
Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();
protocol.setMaxConnections(200);