Zusammenfassung: 1. Die Eigenschaftskonfigurationsdatei von Spring Boot 1.1 Die erste Form der Eigenschaftskonfigurationsdatei von Spring Boot verwendet die Eigenschaftenkonfigurationsdatei wie folgt: Die Bedeutung ist Ändern Sie den Zugriffsport auf 8081 und fügen Sie einen contextPath hinzu. Dies kann als Hinzufügen einer zusätzlichen Adressebene zur Adressleiste verstanden werden. server.port= ...
Unter Verwendung der Eigenschaftenkonfigurationsdatei besteht die Bedeutung der folgenden beiden Eigenschaften darin, den Zugriffsport auf 8081 zu ändern. und einen contextPath hinzugefügt, der als Hinzufügen einer zusätzlichen Adressebene zur Adressleiste verstanden werden kann.
server.port=8081 server.context-path=/joyou
Klicken Sie mit der rechten Maustaste auf DemoApplication.java ——》Ausführen als ——》Spring Boot App-Startprogramm
Der Effekt ist wie folgt Protokoll, der Port wurde auf 8081 geändert
Der Browserzugriffseffekt ist wie folgt.
Ergänzung:
Eigenschaftendateien sind die gebräuchlichste Methode zum Verwalten von Konfigurationseigenschaften. Die von Spring Boot bereitgestellte SpringApplication-Klasse durchsucht und lädt die Datei application.properties, um Konfigurationseigenschaftswerte abzurufen. Die SpringApplication-Klasse sucht an den folgenden Speicherorten nach der Datei:
1./config-Unterverzeichnis des aktuellen Verzeichnisses
2.Aktuelles Verzeichnis
3./config im Classpath-Paket
4.Klassenpfad
Die obige Reihenfolge ist ebenfalls Gibt die Priorität der an diesem Speicherort enthaltenen Eigenschaftendateien an. Die Prioritäten sind von hoch nach niedrig geordnet.
Sie können über das Konfigurationsattribut des Schlüssels spring.config.name unterschiedliche Eigenschaftendateinamen angeben. Sie können auch den Suchpfad für zusätzliche Eigenschaftendateien über spring.config.location hinzufügen.
Der Code lautet wie folgt.
server: port: 8082 context-path: /joyou
效果与1.1相同。
补充:
相对于属性文件来说,YAML 是一个更好的配置文件格式。当有前缀的情况下,使用.yml格式的配置文件更简单。
注意:使用.yml时,属性名的值和冒号中间必须有空格,如name: SpringBoot正确,SpringBoot就是错的。
YAML wird in Ruby on Rails sehr gut verwendet. YAML ist eine Obermenge von JSON und ein praktisches Format zum Definieren hierarchischer Konfigurationsdaten. Die grundlegenden Grammatikregeln lauten wie folgt:
Groß- und Kleinschreibung beachten
Einrückung hierarchisch verwenden Beziehungen
erlauben nicht die Verwendung der Tabulatortaste beim Einrücken und erlauben nur Leerzeichen.
Die Anzahl der eingerückten Leerzeichen ist nicht wichtig, solange Elemente auf derselben Ebene linksbündig sind
# stellt einen Kommentar dar. Von diesem Zeichen bis zum Ende der Zeile wird er vom Parser ignoriert.
Detaillierte Konfiguration und Anweisungen finden Sie in der Dokumentation der offiziellen SpringBoot-Website. In Anhang A. Allgemeine Anwendungseigenschaften: http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#common-application-properties
Unvollständige Statistiken, dies Das vollständige Die Anwendungseigenschaftendatei hat 1183 Zeilen. Darunter sind 950 Attributschlüssel. Wenn Sie eine so große Konfiguration sehen, werden Sie sicherlich schockiert sein. Wenn wir jedoch in tatsächlichen Projekten der Konvention von Spring Boot folgen, müssen wir normalerweise nicht zu viele Konfigurationen separat angeben.
1. Befehlszeilenparameter (höchste Priorität).
2. Java-Systemparameter, die über System.getProperties() abgerufen werden.
3. Umgebungsvariablen des Betriebssystems.
4. JNDI-Attribute erhalten von java:comp/env.
5. Random.*-Eigenschaften, generiert von RandomValuePropertySource.
6. Application-{profile}.properties oder application.yml (mit spring.profile) Konfigurationsdatei außerhalb des JAR-Pakets über spring.config.location Parameterspezifikation
7.application-{profile}.properties oder application.yml (mit spring.profile) Konfigurationsdatei im JAR-Paket
8. Application.properties oder application.yml (ohne spring.profile) Konfigurationsdatei außerhalb des JAR-Pakets
9. Die Konfigurationsdatei application.properties oder application.yml (ohne spring.profile) im JAR-Paket
Java-Konfigurationsklasse anwenden, einschließlich der mit @Configuration annotierten Java-Klasse und durch die @PropertySource-Annotation deklarierten Eigenschaftsdateien.
11. Standardeigenschaften, die über SpringApplication.setDefaultProperties deklariert werden.
Wenn Spring Boot eine Konfiguration an einem Speicherort mit höherer Priorität findet, ignoriert es die Konfiguration mit niedrigerer Priorität. Im Folgenden sprechen wir kurz über diese Prioritäten. Die Konfigurationspriorität von Spring Boot scheint kompliziert, ist aber eigentlich sehr vernünftig. Die Priorität der Befehlszeilenparameter ist auf die höchste eingestellt, da wir so die Konfigurationsparameterwerte in einer Test- oder Produktionsumgebung schnell ändern können, ohne die Anwendung neu packen und bereitstellen zu müssen.
Standardmäßig konvertiert die SpringApplication-Klasse Befehlszeilenparameter , die mit „--“ beginnen, in Konfigurationen, die verwendet werden können In den Anwendungsparametern , z. B. „--name=Alex“, wird der Wert des Konfigurationsparameters „name“ auf „Alex“ gesetzt.
Wenn Sie diese Funktion nicht benötigen, können Sie SpringApplication.setAddCommandLineProperties(false)
übergebenDeaktivieren Sie das Parsen von Befehlszeilenargumenten.
在实际开发过程中,需要程序去配置文件中读取数据(如:URL,一些账号密码等),所以就需要我们来自定义属性,供程序读取。
首先在yml里自定一个属性,格式如下:
company: joyouemployee: 二十岁以后
在Java程序中取值,代码如下:
package com.example.demo;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class HelloSpringBoot { @Value("${company}") private String company; @Value("${employee}") private String employee; @RequestMapping(value="/hello" , method = RequestMethod.GET) public String HelloSpring(){ return company+"====="+employee; } }
使用浏览器访问效果如下
Konfiguration in der YML-Datei 在JAVA程序中注入All属性 效果如图所示: 看了上面的例子后,会产生一个疑问,如果想一次调用10个、20个、50个属性值,难道我要在程序中注入50次值,使用50次注解吗? 为了解决这个疑问,Spring Boot 是这么解决的! 首先一个女孩,有身高、体重、罩杯等等属性,我们可以这样来写! 然后写一个类,这个类中提供Girl的属性,及Setter,Geter方法,需要使用两个注解: @Component //如果没有这个注解,会报找不到Bean的错 @ConfigurationProperties(prefix="Girl") //找到以Girl开头的属性 然后在java程序中注入Gril类company: joyouemployee: 二十岁以后
All: "公司: ${company} , 员工: ${employee}"
package com.example.demo;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class HelloSpringBoot {
@Value("${All}") private String All;
@RequestMapping(value="/hello" , method = RequestMethod.GET) public String HelloSpring(){
return All;
}
}
2.3 对于多个属性如何一次调用
Girl:
High: 160CM Weight: 80KG CupSize: 30A
package com.example.demo;@RestControllerpublic class HelloSpringBoot { @Autowired
private Girl girl;
@RequestMapping(value="/hello" , method = RequestMethod.GET)
public String HelloSpring(){
return girl.toString();
}
}
启动程序,刷新浏览器,效果如下:
Der Attributwert von GIRL in der Produktionsumgebung ist wie folgt:
Der Attributwert von GIRL in der Entwicklungsumgebung ist wie folgt:
Ich muss nur verschiedene Dateien in application.yml aufrufen. Der Wert dev ist der Suffixname verschiedener YML-Dateien in meinen Entwicklungs- und Produktionsumgebungen (Achten Sie auf die Benennung der beiden Bilder Dateien oben)
Das Ergebnis entsprechend dem Browser
Die Konfiguration entsprechend der zweiten Umgebung
Entsprechende Ergebnisse im Browser
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Wissenspunkte des Spring Boot-Frameworks. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!