使用fatjar发布项目动态设置端口

方法就是使用启动命令的时候传参给main方法即可

1. 首先先把undertow.txt文件下面的undertow.port给删除掉(因为undertow优先只用这里设置的参数)

2. 修改DomeConfig.java文件下面的启动入口

public static void main(String[] args) {
   System.out.println("args:"+ Arrays.toString(args));
   // DemoConfig.loadConfig();
   // 动态配置端口
   Integer port = 8089;
   if (args.length > 0) {
      port = Integer.valueOf(args[0]);
   }
   UndertowServer.start(DemoConfig.class, port, false);
}

3. 修改启动命令

java -jar xxx.jar 8189  可以看到这是我下面成功的案例
image.png

评论区

JFinal

2021-01-19 15:54

fatjar 模式改配置文件不太方便,这个分享很有用,赞一个

此外, jfinal undertow 还提供了五个参数的命令行支持,而且是优先于 undertow.txt 支持的,具体代码在这里:
https://gitee.com/jfinal/jfinal-undertow/blob/master/src/main/java/com/jfinal/server/undertow/UndertowServer.java#L362

注意看 loadCommandLineParameter() 方法上的注释说明,具体的用法如下:
java -Dundertow.port=8080 -Dundertow.host=0.0.0.0 -jar jfinal-club-release.jar

以上示例可以传入 port 、 host 两个参数,而且这两个参数拥有最高的优先级

一共有五个参数可以这样来传递:
port、host、resourcePath、ioThreads、workerThreads




传参注意事项:
1:传参规则由 java 命令行给定,与 jfinal undertow 项目完全无关
2:传参以 "-D" 为前缀,并且该前缀与后方的参数名之间不能有空格
3:参数名与参数值中间用等号字符分格,且等号前后不能空格