• Java命令行启动jar包更改默认端口以及配置文件的几种方式


    Java命令行启动jar包更改默认端口以及配置文件的几种方式

    1. java -jar xxx.jar --server.port=8081

    默认如果jar包没有启动文件,可以采用这种方式进行启动

    1. java -jar xxx.jar --spring.profiles.active=dev
    1. 这种方式,你打的jar包里得有application-dev.properties或application-dev.yml这类资源文件
    2. 使用 "--spring.profiles.active" 参数,搭配@Profile注解,可以实现不同环境下(开发、测试、生产)配置参数的切换

    3. 根据文档描述,我们除application.properties外,还可以根据命名约定(命名格式:application-{profile}.properties)来配置,如果active赋予的参数没有与使用该命名约定格式文件相匹配的话,app则会默认从名为application-default.properties 的配置文件加载配置。
    如:`spring.profiles.active=hello-world,sender,dev` 有三个参数,其中 dev 正好匹配下面配置中的application-dev.properties 配置文件,所以app启动时,项目会先从application-dev.properties加载配置,再从application.properties配置文件加载配置,如果有重复的配置,则会以application.properties的配置为准。
    (配置文件加载顺序详见官方文档:24. Externalized Configuration)
    


    如此,我们就不用为了不同的运行环境而去更改大量的环境配置了(此处,dev、pro、test分别为:开发、生产、测试环境配置)

    1. java -jar xxx.jar --spring.config.location=/data/java/application.properties 或 java -jar xxx.jar --spring.config.location=/data/java/application.yml

    指定加载某个资源文件,也可以使用相对路径

    1. java -jar xxx.jar --spring.config.location=/data/java/application.properties -Dserver.port=8081 -Dserver.address=127.0.0.1

    扩展,你加载的指定配置文件里的有server.port和server.address配置项
    例如:
    我工程里有mapper/xxx.xml数据库CRUD接口映射文件,我编译后的目录文件其实是在target/classes/mapper/xxx.xml
    当我使用指定资源配置文件启动的时候,由于我指定的配置文件里配置的 mapper-locations: classpath:mapper/*. xml是这样的加载路径,调试运行时没问题,但是在编译后的目标目录里启动时,就会因为路径不对而导致启动失败。
    如果我这样启
    java -jar xxx.jar --spring.config.location=./classes/application.yml
    下面一定会报mybatis-plus相关的一些错误,例如找不到映射文件之类的
    那,如果我这样启
    java -jar xxx.jar --spring.config.location=./classes/application.yml -Dmybatis-plus mapper-locations=./classes/mapper
    就能正常加载资源配置文件并启动成功,其他配置项的加载道理也一样。

  • 相关阅读:
    Docker配置samba共享
    阿里云SSL 免费证书申请方法
    linux centos7 关闭防火墙的方法
    PHP 面向对象的特性 抽象类和接口
    详解mixphp的依赖注入控制反转
    swoole mixphp swoolefor热更新使用方法
    nginx ab并发测试 apr_socket_recv: Connection refused (111
    PHP golang java 并发测试
    php.ini 添加的模块没更新的解决方法
    关于golang的未来的道路
  • 原文地址:https://www.cnblogs.com/Serverlessops/p/14044985.html
Copyright © 2020-2023  润新知