Le fichier de configuration est très important, toutes les données importantes dans l'ensemble du projet est Par exemple, configurez dans le fichier de configuration :
Informations de connexion à la base de données (paramètres du nom d'utilisateur et du mot de passe) ; 🎜🎜#Port de démarrage du projet ;
Informations clés secrètes pour les appels système tiers
Oui ; Journaux courants et journaux anormaux pour découvrir et localiser les problèmes (niveau de journalisation et persistance)
S'il n'y a pas de fichier de configuration, ces informations ne peuvent pas être configurées ; connecté, le journal ne peut pas être visualisé, etc. Ces problèmes sont très critiques pour le projet Spring Boot, le fichier de configuration est donc particulièrement important !
La classification des fichiers de configuration est généralement :
Fichier de configuration système ( Défini par le système), tel que la chaîne de connexion, les paramètres liés au journal
Défini par l'utilisateur ; Il existe deux formats principaux de fichiers de configuration Spring Boot :
.properties
. #
3. Description du fichier de configuration des propriétés
1.Syntaxe de base des propriétés
Dans les propriétés, les paires clé-valeur sont principalement utilisées (clé=valeur), similaire àUn tel format (n'écrivez pas d'espaces au milieu, et n'écrivez pas d'espaces supplémentaires)
2. Lire le fichier de configuration
Ce problème peut également être résolu en utilisant des annotations Ici, l'annotation @Value et le format de ${} peuvent être utilisés pour lire. :
@Controller public class Test { @Value("${server.port}") //读取配置项 private String port; @ResponseBody //返回一个非静态页面的数据 @RequestMapping("/func") //设置路由地址 public String func(){ return "port: " + port; } }
#🎜🎜 ##🎜🎜 #Vous ne pouvez lire qu'un seul fichier de configuration en utilisant @Value. Si vous souhaitez en lire plusieurs, vous devez écrire quelques balises @Value supplémentaires
Le les propriétés utilisent le formulaire clé=valeur, et s'il s'agit d'une valeur sous la même clé, vous devez écrire la valeur clé à plusieurs reprises, ce qui est très redondant
#🎜 🎜#Pour résoudre ce problème, vous devez utiliser le fichier de configuration yml
Description du fichier de configuration Four.yml#🎜 🎜#yml est un autre format de fichier de configuration, yml est très lisible. et format facile à comprendre utilisé pour exprimer la sérialisation des données. La syntaxe de yml est très similaire à celle des langages de haut niveau, et le plus grand avantage de yml est qu'il peut être utilisé dans des langages tels que python et golang. utilisez yml comme fichier de configuration. Ce qui suit est une introduction détaillée au fichier de configuration yml :
La syntaxe de base de yml est : clé : valeur. est requis entre la clé et la valeur. Ajoutez des espaces, et les espaces ne peuvent pas être omis. Si vous écrivez la configuration de la base de données de connexion ci-dessus avec une syntaxe telle que
, ce sera beaucoup plus pratique : # 🎜🎜#
Supplément : Problèmes concernant les guillemets simples et doubles dans yml : Si des guillemets doubles sont utilisés dans yml, ils seront exécutés selon la sémantique (originale). S'ils ne sont pas ajoutés ou si des guillemets simples sont ajoutés, les caractères spéciaux dans la chaîne seront échappés par défaut, comme le traitement n ->
La façon de lire le fichier de configuration yml est également la même que celle des propriétés, en utilisant le format de l'annotation @Value plus ${}, ici c'est Plus de démonstration, regardons les différences dans yml !
在yml里面还是可以配置对象的:
另外也可以使用行内写法:
而想要读取到这个对象的话就不能再使用@Value注解了,这里需要借助@ConfigurationProperties来读取:
import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @Data @ConfigurationProperties(prefix = "student") //读取配置文件的对象 @Component public class Student { private int id; private String name; private int age; }
然后读取对象,就可以直接进行注入了:
@Controller public class Test { @Autowired private Student student; @ResponseBody @RequestMapping("/getstudent") public String getStudent(){ return "student: " + student; } }
然后通过浏览器搜索http://localhost:8080/getstudent就可以得到对象内容了:
在yml里面也是可以配置集合的:
同样行内写法也是可以的:
而要获取到集合的话,和获取对象是差不多的,也是通过@ConfigurationProperties来获取:
import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; import java.util.List; @Data @ConfigurationProperties(prefix = "dbtypes") @Component public class ListConfig { private List<String> name; }
读取集合:
@Controller public class Test { @Autowired private ListConfig listConfig; @ResponseBody @RequestMapping("/getlist") public String getList(){ return "name:" + listConfig.getName(); } }
然后通过浏览器搜索http://localhost:8080/getlist就可以得到对象内容了:
properties是以key=value的形式配置的键值对类型配置文件,而yml是以key: value的形式配置的键值对类型配置文件;
properties是早期且系统默认的配置文件格式,但配置存在一定的冗余数据,而yml可以更好的解决数据冗余问题;
yml通用性更好,支持多语言;
yml支持更多的数据类型;
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!