Normalement, les packages jar springboot sont démarrés via –spring.profiles.active = dev, vous pouvez lire les informations du fichier de configuration de application-dev.yml et le démarrer
Cette fois le démarrage est très étrange, entrez dans ce Turning sur les paramètres d'environnement n'a toujours aucun effet,
C'est tellement effrayant, c'est tellement inattendu
Pas de développement en lecture d'application ! .yml lit à la place le fichier application.yml par défaut
Cependant, en utilisant les paramètres de démarrage de jvm : java -jar -Dspring.profiles.active=dev, il peut être démarré, ce qui prouve que la configuration du développement le fichier est efficace
classe d'entrée de l'application trouvée :
public static void main(String[] args){ SpringApplication.run(Application.class,args); }
Lors de l'appel de la méthode run, aucun argument n'a été transmis !# 🎜🎜 #
Lisez le code source et découvrez, transmettez les paramètres de démarrage, puis analysez les paramètres entrants et définissez les propriétésRemarque : # 🎜🎜# Attention, le code de démarrage doit passer dans les paramètres de démarrage !!! Afin de saisir les paramètres de démarrage pour prendre effet au démarrage
springboot Profiles, priorité de chargement du fichier de configuration# 🎜🎜#
SpringBoot nous permet Il existe plusieurs fichiers de configuration, puis le fichier de configuration correspondant est chargé dynamiquement en fonction des conditions au démarrage du projet. Il existe désormais trois configurations, un fichier de configuration par défaut (application.properties : car c'est le nom spécifié par SpringBoot, il est donc appelé fichier de configuration par défaut) et deux fichiers de configuration d'environnement spécifiés (application -prod.properties et application -dev.properties : liés à l'environnement correspondant, ils sont donc appelés fichiers de configuration d'environnement désignés)application-dev.properties
person.name=ZhangSan person.age=18
Simulez simplement les informations de configuration de productionperson.name=LiSi
person.age=19
server.port=8080 spring.profiles.active=dev #我们可以指定SpringBoot在启动时加载那个对应的配置文件
Créez une requête get et renvoyez notre instance Person. Voyons si la valeur de l'attribut perosn peut charger le fichier de configuration correspondant selon l'attribut spring.profiles.active que nous avons spécifié dans le fichier de configuration application.properties. , la valeur dans l'instance Person est-elle la valeur attendue ?
@ConfigurationProperties(prefix = "person") //初始化的时候从配置文件中读取person.{属性名}的信息赋值给当前对象 @Data public class Person { private String name; private Integer age; } @Configuration //配置文件信息,将Person实例注入到IOC容器中 public class MyConfig { @Bean public Person person() { return new Person(); } }
Mettez spring.profiles dans application.properties Changez la valeur de .active en prod, demandez l'accès à http://localhost:8080/user , et renvoie le résultat :
{"name":"LiSi","age":19}De plus, si nous Après avoir empaqueté le projet dans un pot, nous pouvons spécifier la valeur de spring.profiles.active en attribuant des valeurs aux paramètres depuis la ligne de commande lors du démarrage du projet SpringBoot
@RequestMapping("/user") public class PersonController { @Autowired private Person person; @GetMapping public Person getPerson() { return person; } }
Un autre plus pratique est que SpringBoot charge le chemin et la priorité de application.properties et application.yaml par défaut (voir la documentation officielle de SpringBoot : https://docs.spring.io/spring- boot/docs/current/reference/html/features.html# Features.external-config.application-json), priorité de chargement :
où se trouve le package jar Application.properties et application.yaml sous /config/{first- level sous-répertoire} sous le répertoire
application sous /config sous le répertoire où se trouvent le package jar et application.yaml
#🎜 🎜#
Le scénario est le suivant : Notre projet est en cours d'exécution depuis longtemps et la configuration le fichier doit être modifié en raison d’urgences. Mais nous n’osons pas modifier à volonté les anciens fichiers de configuration. Pour le moment, nous pouvons placer nos nouveaux fichiers de coordination en priorité.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!