>  기사  >  Java  >  SpringBoot는 어떻게 jar 패키지 외부에 구성 파일을 걸어두나요?

SpringBoot는 어떻게 jar 패키지 외부에 구성 파일을 걸어두나요?

WBOY
WBOY앞으로
2023-05-15 15:01:064489검색

    1. SpringBoot는 구성 파일 경로를 지정합니다.

    SpringBoot에서는 구성 파일을 jar 패키지 외부에 배치할 수 있으므로 다시 패키지하고 배포할 필요 없이 구성을 쉽게 수정할 수 있습니다.

    다음은 구성 파일 디렉터리를 지정하는 여러 가지 방법입니다. (유효 우선 순위에 따라 높은 순서에서 낮은 순서로 정렬)

    1) 명령줄 매개 변수 사용:

    응용 프로그램을 시작할 때 --를 사용할 수 있습니다. spring.config.location 또는 -Dspring.config.location 명령줄 매개변수를 사용하여 구성 파일의 경로를 지정합니다. 예: (--spring.config.location-Dspring.config.location 命令行参数来指定配置文件的路径,例如:(config 后面的 / 不可省略

    java -jar test.jar --spring.config.location=/opt/app/config/

    补充:FHS将/opt定义为 “为安装附加应用软件包而保留”。所以这里选择 /opt 文件夹来存放应用程序的配置文件。

    2)使用环境变量:

    可以设置 SPRING_CONFIG_LOCATION 环境变量来指定配置文件的路径,例如:

    export SPRING_CONFIG_LOCATION=/opt/app/config/
    java -jar test.jar

    3)使用外部配置文件:

    • 方法一: 在应用程序(jar包)启动命令执行目录下 创建一个名为 config 的文件夹,然后将配置文件放在该文件夹中。

    • 方法二: 在应用程序(jar包)同级目录下 创建一个名为 config 的文件夹,然后将配置文件放在该文件夹中。在代码的配置文件 application.propertiesapplication.yml 中添加以下行:

    spring.config.name=application
    spring.config.location=classpath:/,file:./config/
    • 方法三: 在应用程序(jar包)同级目录下 直接放 propertiesyml 配置文件。

    • 方法四: 在应用程序(jar包)内部的 classpath同级目录下,创建 config 文件夹,然后放 propertiesyml 配置文件。

    • 方法五: 在应用程序(jar包)内部的 classpath同级目录下,然后直接放 propertiesyml 配置文件。

    注意:以上方法可以组合使用,例如,可以在命令行参数和环境变量中同时指定配置文件的路径,执行时命令行参数的优先级最高。

    二、SpringBoot 配置文件生效的优先级排序:

    1. java -jar 命令行中,通过 --spring.config.location 参数指定的方式优先级最高。

    2. 设置 SPRING_CONFIG_LOCATION 环境变量来指定配置文件的路径是次优先级。

    3. 在执行 java -jar 命令同级目录下的 config 文件夹是第三优先级。

    4. 注意:如果 java -jar 命令不是在项目 jar 包 同级目录执行的话,在项目 jar 包同级目录下的 config 文件夹是不生效的。

    5. 项目 jar 包中 propertiesyml 文件中指定 spring.config.location 配置文件夹是第四优先级。

    6. 项目 jar 包同级下直接放 properties 文件是第五优先级,直接把配置文件放到 jar 包的同级目录。

    7. 项目内部的 classpath 同级 config 文件夹是第六优先级,在 classpath 下建一个 config 文件夹,然后把配置文件放进去。

    8. 项目内部的 classpath 同级放 properties 文件是最低优先级,是在 classpath 下直接放配置文件。

    SpringBoot 默认是优先读取java -jar 命令同级目录下的一个 config/application.properties 文件的。

    在项目内 src/main/resources 文件夹下创建的 application.propertiesconfig / after config는 생략할 수 없습니다

    )🎜rrreee🎜추가됨: FHS는 /opt를 "추가 응용 프로그램 패키지 설치를 위해 예약됨"으로 정의합니다. 따라서 여기서는 애플리케이션 구성 파일을 저장하기 위해 /opt 폴더가 선택되었습니다. 🎜🎜2) 환경 변수 사용: 🎜🎜 SPRING_CONFIG_LOCATION 환경 변수를 설정하여 구성 파일의 경로를 지정할 수 있습니다. 예: 🎜rrreee🎜3) 외부 구성 파일 사용: 🎜
    • 🎜🎜방법 1: 🎜 애플리케이션(jar 패키지) 시작 명령 실행 디렉터리config라는 폴더를 생성하고 그런 다음 구성 파일이 이 폴더에 저장됩니다. 🎜
    • 🎜🎜방법 2: 🎜 애플리케이션(jar 패키지) 형제 디렉터리config라는 폴더를 생성한 다음 구성 파일이 배치됩니다. 이 폴더에. 코드의 구성 파일 application.properties 또는 application.yml에 다음 줄을 추가합니다. 🎜
    • 🎜rrreee
      • 🎜🎜방법 3: 🎜 애플리케이션(jar 패키지)의 동일한 디렉터리속성 또는 yml 구성 파일을 직접 배치합니다. . 🎜
      • 🎜🎜방법 4: 🎜 애플리케이션(jar 패키지) /code 내부 classpathsibling 디렉터리config 폴더를 선택한 다음 <code>속성 또는 yml 구성 파일을 넣습니다. 🎜
      • 🎜🎜방법 5: 🎜 애플리케이션(jar 패키지) 내부 classpath동일 디렉터리에 속성 또는 yml 구성 파일. 🎜
      • 🎜🎜참고: 위의 방법을 조합하여 사용할 수 있습니다. 예를 들어 명령줄 매개변수와 환경 변수 모두에서 구성 파일 경로를 지정할 수 있습니다. 명령줄 매개변수는 실행 중에 가장 높은 우선순위를 갖습니다. 🎜🎜2. SpringBoot 구성 파일 적용 우선순위: 🎜
    1. 🎜java -jar 명령줄에서 를 전달합니다. -- spring.config.location 매개변수에 지정된 방법이 가장 높은 우선순위를 갖습니다. 🎜
    2. 🎜 구성 파일의 경로를 지정하기 위해 SPRING_CONFIG_LOCATION 환경 변수를 설정하는 것이 두 번째 우선 순위입니다. 🎜
    3. 🎜 java -jar 명령과 동일한 디렉터리에 있는 config 폴더가 세 번째 우선순위입니다. 🎜
    4. 🎜참고: java -jar 명령이 프로젝트 jar 패키지와 동일한 디렉토리에서 실행되지 않는 경우, config는 프로젝트 jar 패키지와 동일한 디렉토리에 있습니다. 프로젝트 jar 패키지 > 폴더가 유효하지 않습니다. 🎜
    5. 🎜프로젝트 jar 패키지의 properties 또는 yml 파일에 지정된 spring.config.location 구성 폴더 4가지 우선순위입니다. 🎜
    6. 🎜properties 파일을 프로젝트 jar 패키지의 동일한 레벨 아래에 직접 배치하는 것이 다섯 번째 우선순위입니다. 구성 파일을 jar과 동일한 레벨의 디렉토리에 직접 배치하는 것입니다. 패키지. 🎜
    7. 🎜프로젝트 내부의 classpath 형제 config 폴더가 6순위입니다. classpath 아래에 config 폴더를 생성한 후 구성을 넣어주세요. 파일을 입력하세요. 🎜
    8. 🎜프로젝트 내에서 classpath와 동일한 수준에 properties 파일을 배치하는 것은 우선순위가 가장 낮으며 classpath 바로 아래에 배치됩니다. 코드> 구성 파일. 🎜
    🎜SpringBoot는 기본적으로 java -jar 명령과 동일한 디렉터리에 있는 config/application.properties 파일을 읽는 데 우선 순위를 부여합니다. 🎜🎜프로젝트 내 src/main/resources 폴더에 생성된 application.properties 파일은 우선순위가 가장 낮습니다. 🎜

    위 내용은 SpringBoot는 어떻게 jar 패키지 외부에 구성 파일을 걸어두나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제