Heim  >  Artikel  >  Java  >  So erhalten Sie den Wert in application.yml in Springboot

So erhalten Sie den Wert in application.yml in Springboot

WBOY
WBOYnach vorne
2023-06-03 18:43:131745Durchsuche

In Projekten werden häufig einige Konfigurationsinformationen benötigt. Diese Informationen können in der Testumgebung und in der Produktionsumgebung unterschiedliche Konfigurationen haben und müssen möglicherweise später basierend auf den tatsächlichen Geschäftsbedingungen geändert werden. Wir können diese Konfigurationen nicht fest im Code codieren. Am besten schreiben Sie sie in die Konfigurationsdatei. Sie können diese Informationen beispielsweise in die Datei application.yml schreiben. application.yml 文件中。

So erhalten Sie den Wert in application.yml in Springboot

那么,怎么在代码里获取或者使用这个地址呢?有2个方法。

方法一:

我们可以通过@Value 注解的 ${key} 即可获取配置文件(application.yml)中和 key 对应的 value 值,这个方法适用于微服务比较少的情形

So erhalten Sie den Wert in application.yml in Springboot

方法二:

在实际项目中,遇到业务繁琐,逻辑复杂的情况,需要考虑封装一个或多个配置类。比如,如果一个业务需要同时使用微服务1、微服务2和微服务3,那么这些微服务将被调用。

如果这样一个个去使用 @Value 注解引入相应的微服务地址的话,太过于繁琐。

也许实际业务中,远远不止这三个微服务,甚至十几个都有可能。对于这种情况,我们可以先定义一个 MicroServiceUrl

Wie erhält Springboot den Wert in application.yml?

Also, wie bekomme ich diese Adresse oder verwende ich sie im Code? Es gibt 2 Methoden.

Methode 1:

Wir können den Wert, der dem Schlüssel in der Konfigurationsdatei (application.yml) entspricht, über den mit @Value annotierten ${key} abrufen. Diese Methode ist anwendbar In Situationen, in denen es relativ wenige Microservices gibt

Wie um den Springboot-Wert in application.yml zu erhalten

Methode 2:

So erhalten Sie den Wert in application.yml in SpringbootWenn Sie in tatsächlichen Projekten auf komplizierte Geschäfte und komplexe Logik stoßen, müssen Sie die Kapselung einer oder mehrerer Konfigurationen in Betracht ziehen Klassen . Wenn ein Unternehmen beispielsweise Microservice 1, Microservice 2 und Microservice 3 gleichzeitig verwenden muss, werden diese Microservices aufgerufen. #🎜🎜#Es wäre zu umständlich, die @Value-Annotation zu verwenden, um die entsprechenden Microservice-Adressen einzeln einzuführen. #🎜🎜##🎜🎜#Vielleicht gibt es im tatsächlichen Geschäftsleben weit mehr als diese drei Microservices oder sogar mehr als ein Dutzend. Für diese Situation können wir zunächst eine MicroServiceUrl -Klasse definieren, um speziell die URL des Microservices zu speichern.
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "url")
public class MicroServiceUrl {

private String orderUrl;
private String userUrl;
private String shoppingUrl;

public String getOrderUrl() {
return orderUrl;
}

public void setOrderUrl(String orderUrl) {
this.orderUrl = orderUrl;
}

public String getUserUrl() {
return userUrl;
}

public void setUserUrl(String userUrl) {
this.userUrl = userUrl;
}

public String getShoppingUrl() {
return shoppingUrl;
}

public void setShoppingUrl(String shoppingUrl) {
this.shoppingUrl = shoppingUrl;
}
}
#🎜🎜#Die Konfiguration ist jetzt geschrieben. Es ist nicht erforderlich, die URLs dieser Mikrodienste einzeln in den Code einzuführen. Sie können die neu geschriebene Konfigurationsklasse direkt über die Annotation @Resource einfügen . Das Folgende ist der Test-Controller: #🎜🎜##🎜🎜##🎜🎜##🎜🎜#
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>

Das obige ist der detaillierte Inhalt vonSo erhalten Sie den Wert in application.yml in Springboot. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen