Alle wichtigen Daten im gesamten Projekt werden in der Konfigurationsdatei konfiguriert:
Datenbankverbindungsinformationen (Benutzername und Passworteinstellungen);
Port für den Projektstart;
geheime Schlüsselinformationen für Systemaufrufe von Drittanbietern;
normale Protokolle und abnormale Protokolle, die Probleme erkennen und lokalisieren können;
Wenn keine Konfigurationsdatei vorhanden ist, können diese Informationen nicht konfiguriert werden, die Datenbank kann nicht verbunden werden, das Protokoll kann nicht angezeigt werden usw. Diese Probleme sind für das Spring Boot-Projekt sehr kritisch, daher ist die Konfigurationsdatei besonders wichtig!
Die Klassifizierung von Konfigurationsdateien ist im Allgemeinen:
Systemkonfigurationsdateien (vom System definiert), wie z. B. Verbindungszeichenfolgen, protokollbezogene Einstellungen;
vom Benutzer selbst definiert;
Die Spring Boot-Konfigurationsdatei hat hauptsächlich zwei Formate:
.properties
.yml
Dies sind die beiden Formate, und sie müssen hier so geschrieben werden, andernfalls ein Es wird ein Fehler gemeldet (Konvention ist größer als Konfiguration). Die beiden Formate sind nur Produkte unterschiedlicher Zeit. Dies ist auch wie folgt Es wird entsprechende Einführungen geben, und wenn beide Formate konfiguriert sind, verwendet die Konfiguration hier die Konfiguration in den Eigenschaften und ignoriert die Konfiguration in yml. Daher wird nicht empfohlen, beide Formate gleichzeitig zu verwenden Dann verwenden Sie das gleiche Format in einem Projekt!
Die Eigenschaftenkonfigurationsdatei ist ein früheres Konfigurationsdateiformat und auch die Standardkonfigurationsdatei für das Spring Boot-Projekt. Im Folgenden finden Sie eine detaillierte Einführung in die Eigenschaftenkonfigurationsdatei:
Eigenschaften sind hauptsächlich Schlüssel-Wert-Paare (Schlüssel=Wert), ähnlich dem Format von
(schreiben Sie keine Leerzeichen in die Mitte und schreiben Sie keine zusätzlichen Leerzeichen)
If Es handelt sich um eine benutzerdefinierte Konfigurationsdatei. Sie liegt ebenfalls in der Form „key=value“ vor und Sie müssen sie selbst schreiben. Wenn Sie diese Datei lesen möchten, können Sie nur den von Ihnen definierten Schlüsselwert verwenden, um den Wert zu erhalten!
Dieses Problem kann auch durch die Verwendung von Annotationen gelöst werden. Hier können Sie die Annotation @Value und das Format von ${} verwenden, um Folgendes zu lesen:
@Controller public class Test { @Value("${server.port}") //读取配置项 private String port; @ResponseBody //返回一个非静态页面的数据 @RequestMapping("/func") //设置路由地址 public String func(){ return "port: " + port; } }
Dann durchsuchen Sie http://localhost Die Seite :8080/func hängt von der beobachteten Portnummer ab:
Mit @Value kann nur eine Konfigurationsdatei gelesen werden. Wenn Sie mehrere lesen möchten, müssen Sie ein paar weitere @-Tags schreiben
3. Nachteile von Eigenschaften: In Eigenschaften wird die Form „Schlüssel = Wert“ verwendet. Wenn es sich um einen Wert unter demselben Schlüssel handelt, muss der Schlüsselwert wiederholt geschrieben werden Um dieses Problem zu lösen, müssen Sie die YML-Konfigurationsdatei verwenden. IV Beschreibung der YML-Konfigurationsdatei yml ist dem von Hochsprachen sehr ähnlich, und der größte Vorteil von yml besteht darin, dass es in mehreren Sprachen wie Python und Golang verwendet werden kann. Sie können yml als Konfigurationsdatei verwenden. Das Folgende ist eine detaillierte Einführung in die yml-Konfigurationsdatei: 1. Grundlegende Syntax in yml: Schlüssel: Wert Beachten Sie, dass zwischen Schlüssel und Wert ein Leerzeichen erforderlich ist kann nicht weggelassen werden, ähnlich wie Wenn Sie die obige Verbindungsdatenbankkonfiguration mit dieser Syntax schreiben, ist es viel praktischer:2. Lesen Sie die Konfigurationsdatei
Die Art und Weise, wie die YML-Konfigurationsdatei gelesen wird, ist die gleiche wie bei den Eigenschaften. Ich werde es hier nicht demonstrieren Schauen Sie sich den anderen YML-Ort an!
在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支持更多的数据类型;
Das obige ist der detaillierte Inhalt vonWelche Funktionen und Details hat die Spring Boot-Konfigurationsdatei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!