方法就是使用启动命令的时候传参给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 可以看到这是我下面成功的案例
此外, 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:参数名与参数值中间用等号字符分格,且等号前后不能空格