Maison  >  Article  >  Java  >  Comment SpringBoot bloque-t-il le fichier de configuration en dehors du package jar ?

Comment SpringBoot bloque-t-il le fichier de configuration en dehors du package jar ?

WBOY
WBOYavant
2023-05-15 15:01:064567parcourir

    1. SpringBoot spécifie le chemin du fichier de configuration :

    Dans SpringBoot, le fichier de configuration peut être placé en dehors du package jar, afin que la configuration puisse être facilement modifiée sans avoir besoin de reconditionner et de déployer.

    Il existe plusieurs façons de spécifier le répertoire du fichier de configuration : (trié par priorité effective de haut en bas)

    1) Utilisez les paramètres de ligne de commande :

    Lors du démarrage de l'application, vous pouvez utiliser -- paramètres de ligne de commande spring.config.location ou -Dspring.config.location pour spécifier le chemin du fichier de configuration, par exemple : (--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 Le / after config ne peut pas être omis

    )🎜rrreee🎜Ajouté : FHS définit /opt comme "réservé à l'installation de packages d'applications supplémentaires". Le dossier /opt est donc sélectionné ici pour stocker le fichier de configuration de l'application. 🎜🎜2) Utiliser des variables d'environnement : 🎜🎜Vous pouvez définir la variable d'environnement SPRING_CONFIG_LOCATION pour spécifier le chemin du fichier de configuration, par exemple : 🎜rrreee🎜3) Utiliser des fichiers de configuration externes : 🎜
    • 🎜🎜Méthode 1 : 🎜 Créez un dossier nommé config dans l'application (package jar) répertoire d'exécution des commandes de démarrage, et puis les fichiers de configuration sont placés dans ce dossier. 🎜
    • 🎜🎜Méthode 2 : 🎜 Créez un dossier nommé config dans l'application (package jar) répertoire frère, puis les fichiers de configuration sont placés dans ce dossier. Ajoutez les lignes suivantes dans le fichier de configuration du code application.properties ou application.yml : 🎜
    • 🎜rrreee
      • 🎜🎜Méthode 3 : 🎜 Placer directement le fichier de configuration properties ou yml dans le répertoire de même niveau de l'application (package jar) . 🎜
      • 🎜🎜Méthode 4 : 🎜 Créez configrépertoire frère du classpath à l'intérieur de l'application (package jar) /code >, puis placez le fichier de configuration properties ou yml. 🎜
      • 🎜🎜Méthode 5 : 🎜 Dans le répertoire de même niveau du classpath à l'intérieur de l'application (package jar), puis directement mettre propriétés ou fichier de configuration yml. 🎜
      • 🎜🎜Remarque : Les méthodes ci-dessus peuvent être utilisées en combinaison. Par exemple, le chemin d'accès au fichier de configuration peut être spécifié à la fois dans les paramètres de ligne de commande et dans les variables d'environnement. Les paramètres de ligne de commande ont la priorité la plus élevée lors de l'exécution. 🎜🎜2. Ordre de priorité pour que les fichiers de configuration SpringBoot prennent effet : 🎜
    1. 🎜java -jar Dans la ligne de commande, transmettez -- La méthode spécifiée par le paramètre spring.config.location a la priorité la plus élevée. 🎜
    2. 🎜 Définir la variable d'environnement SPRING_CONFIG_LOCATION pour spécifier le chemin d'accès au fichier de configuration est une priorité secondaire. 🎜
    3. 🎜Le dossier config dans le même répertoire que la commande java -jar est la troisième priorité. 🎜
    4. 🎜Remarque : Si la commande java -jar n'est pas exécutée dans le même répertoire que le package jar du projet, configdans le même répertoire que le package jar du projet > Les dossiers ne sont pas valides. 🎜
    5. 🎜Le dossier de configuration spring.config.location spécifié dans le fichier properties ou yml dans le package jar du projet ce sont les quatre priorités. 🎜
    6. 🎜Placer le fichier properties directement sous le même niveau du package jar du projet est la cinquième priorité. Placer directement le fichier de configuration dans le répertoire au même niveau que le jar. emballer. 🎜
    7. 🎜Le dossier classpath frère config à l'intérieur du projet est la sixième priorité. Créez un dossier de configuration sous classpath, puis placez la configuration. déposer. 🎜
    8. 🎜Mettre les fichiers properties au même niveau que classpath à l'intérieur du projet a la priorité la plus basse et est placé directement sous classpath code>fichier de configuration. 🎜
    🎜SpringBoot donne par défaut la priorité à la lecture d'un fichier config/application.properties dans le même répertoire que la commande java -jar. 🎜🎜Le fichier application.properties créé dans le dossier src/main/resources au sein du projet a la priorité la plus basse. 🎜

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration:
    Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer