Heim > Backend-Entwicklung > PHP-Tutorial > Detaillierte Erläuterung der Wissenspunkte des Spring Boot-Frameworks

Detaillierte Erläuterung der Wissenspunkte des Spring Boot-Frameworks

巴扎黑
Freigeben: 2023-03-15 09:36:01
Original
4860 Leute haben es durchsucht


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= ...

1. Spring Boot-Eigenschaftskonfigurationsdatei

1.1 Die erste Form der Eigenschaftskonfigurationsdatei von Spring Boot

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
Nach dem Login kopieren

Klicken Sie mit der rechten Maustaste auf DemoApplication.java ——》Ausführen als ——》Spring Boot App-Startprogramm

Detaillierte Erläuterung der Wissenspunkte des Spring Boot-Frameworks

Der Effekt ist wie folgt Protokoll, der Port wurde auf 8081 geändert

Detaillierte Erläuterung der Wissenspunkte des Spring Boot-Frameworks

Der Browserzugriffseffekt ist wie folgt.

 Detaillierte Erläuterung der Wissenspunkte des Spring Boot-Frameworks

  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.

   1.2 Die zweite Form der Eigenschaftskonfigurationsdatei von Spring Boot (empfohlen)

                                                               Der Code lautet wie folgt.

server:  port: 8082  context-path: /joyou
Nach dem Login kopieren

效果与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.

1.3 Welche Schlüssel in application.properties sind konfigurierbar?

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.4 Die Priorität der Konfiguration

Spring Boot bietet einen Mechanismus zum Lesen der Prioritätskonfiguration, der uns hilft, aus diesem Dilemma herauszukommen.

Die von Spring Boot bereitgestellte Konfigurationsprioritätssequenz ist relativ komplex. In der Reihenfolge der Priorität von hoch nach niedrig lautet die spezifische Liste (von hoch nach niedrig) wie folgt.

  •         

      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)

übergeben

Deaktivieren Sie das Parsen von Befehlszeilenargumenten.

2. Benutzerdefinierte Spring Boot-Eigenschaften

2.1、 第一个自定义属性的例子

在实际开发过程中,需要程序去配置文件中读取数据(如:URL,一些账号密码等),所以就需要我们来自定义属性,供程序读取。

首先在yml里自定一个属性,格式如下:

company: joyouemployee: 二十岁以后
Nach dem Login kopieren

在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;
	}
}
Nach dem Login kopieren

使用浏览器访问效果如下

Detaillierte Erläuterung der Wissenspunkte des Spring Boot-Frameworks

2.2 Andere Attribute in benutzerdefinierten Attributen aufrufen

Konfiguration in der YML-Datei

company: joyouemployee: 二十岁以后   
All: "公司: ${company} , 员工: ${employee}"
Nach dem Login kopieren

在JAVA程序中注入All属性

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;
	}
}
Nach dem Login kopieren

效果如图所示:

Detaillierte Erläuterung der Wissenspunkte des Spring Boot-Frameworks

2.3 对于多个属性如何一次调用

看了上面的例子后,会产生一个疑问,如果想一次调用10个、20个、50个属性值,难道我要在程序中注入50次值,使用50次注解吗? 为了解决这个疑问,Spring Boot 是这么解决的!

首先一个女孩,有身高、体重、罩杯等等属性,我们可以这样来写!

Girl: 
   High: 160CM   Weight: 80KG   CupSize: 30A
Nach dem Login kopieren

然后写一个类,这个类中提供Girl的属性,及Setter,Geter方法,需要使用两个注解:

  • @Component //如果没有这个注解,会报找不到Bean的错

  • @ConfigurationProperties(prefix="Girl") //找到以Girl开头的属性

Detaillierte Erläuterung der Wissenspunkte des Spring Boot-Frameworks

然后在java程序中注入Gril类

package com.example.demo;@RestControllerpublic class HelloSpringBoot {	@Autowired
	private Girl girl;	
	
	@RequestMapping(value="/hello" , method = RequestMethod.GET)
	public String HelloSpring(){		
			return girl.toString();
	}
}
Nach dem Login kopieren

                启动程序,刷新浏览器,效果如下:

Detaillierte Erläuterung der Wissenspunkte des Spring Boot-Frameworks

3. Konfiguration mehrerer Umgebungsattribute

                                                     Sich unterschiedlichen Produktions- und Entwicklungsszenarien stellen , es kann für die Werte einiger Attribute unterschiedlich sein. Muss ich die in der Entwicklungsumgebung geschriebenen Attributwerte einzeln ändern? Nachdem ich das gesagt habe, besteht natürlich keine Notwendigkeit dafür. Wir können während der Entwicklung zwei Sätze von YML-Dateien mit unterschiedlichen Anforderungen an Attributwerte in den beiden Umgebungen schreiben und dann die erforderlichen YML-Dateien aufrufen.

Der Attributwert von GIRL in der Produktionsumgebung ist wie folgt:

Detaillierte Erläuterung der Wissenspunkte des Spring Boot-Frameworks

Der Attributwert von GIRL in der Entwicklungsumgebung ist wie folgt:

Detaillierte Erläuterung der Wissenspunkte des Spring Boot-Frameworks

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)

Detaillierte Erläuterung der Wissenspunkte des Spring Boot-Frameworks

Das Ergebnis entsprechend dem Browser

Detaillierte Erläuterung der Wissenspunkte des Spring Boot-Frameworks

Die Konfiguration entsprechend der zweiten Umgebung

Detaillierte Erläuterung der Wissenspunkte des Spring Boot-Frameworks

Entsprechende Ergebnisse im Browser

Detaillierte Erläuterung der Wissenspunkte des Spring Boot-Frameworks

Fügen Sie ein Bild der bisherigen Projektverzeichnisstruktur hinzu, um das Verständnis zu erleichtern

Detaillierte Erläuterung der Wissenspunkte des Spring Boot-Frameworks

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage