Heim > Java > javaLernprogramm > 4 Möglichkeiten, die Konfiguration in Spring Boot zu lesen, zum Sammeln empfohlen!

4 Möglichkeiten, die Konfiguration in Spring Boot zu lesen, zum Sammeln empfohlen!

Freigeben: 2023-08-15 16:06:23
nach vorne
1307 Leute haben es durchsucht

In Spring Boot-Projekten geht es im Wesentlichen um das Lesen des Inhalts von Konfigurationsdateien. In diesem Artikel werden verschiedene gängige Methoden zum Lesen von Konfigurationsdateien beschrieben.

Wertanmerkung

in application.properties配置文件配置项:

name=tian
Nach dem Login kopieren

在java代码中读取:

/**
 * @author tianwc  公众号:java后端技术全栈、面试专栏
 * @version 1.0.0
 * @date 2023年07月02日 21:00
 * 博客地址:<a href="http://woaijava.cc/">博客地址</a>
 */
@RestController
@RequestMapping("/configuration")
public class ConfigurationController {

    @Value("${name}")
    private String name;

    @GetMapping("/index")
    public String test() {
        return name;
    }
}
Nach dem Login kopieren

验证:

GET

http://localhost:8089/configuration/index

返回参数:

tian
Nach dem Login kopieren

这类通常都是没有前缀,比较单一的配置项会采用这么读取。

如果有同一的前缀配置,那么我们可以使用下面这种方法。

ConfigurationProperties注解

application.properties

user.userName=tian1
user.age=21
Nach dem Login kopieren

Java-Code einlesen:

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * @author tianwc  公众号:java后端技术全栈、面试专栏
 * @version 1.0.0
 * @date 2023年07月02日 21:07
 * 博客地址:<a href="http://woaijava.cc/">博客地址</a>
 */
@Component
@ConfigurationProperties(prefix = "user")
public class PreConfiguration {
    private String userName;
    private Integer age;

    //set get 省略
}
Nach dem Login kopieren

Überprüfung:

GET

http://localhost:8089/configuration/index

Rückgabeparameter:

vip.userList[0].name=tian01
vip.userList[0].age=20
vip.userList[1].name=tian02
vip.userList[1].age=21
Nach dem Login kopieren
Nach dem Login kopieren

Dieser Typ hat normalerweise kein Präfix und einzelne Konfigurationselemente werden so gelesen.

Wenn es dieselbe Präfixkonfiguration gibt, können wir die folgende Methode verwenden.

🎜🎜ConfigurationProperties-Annotation 🎜🎜🎜🎜 in
public class User {
    private String name;
    private Integer age;
    
    //set get toString 省略
}
Nach dem Login kopieren
Nach dem Login kopieren
🎜Eingelesen in Javadiam: 🎜
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * @author tianwc  公众号:java后端技术全栈、面试专栏
 * @version 1.0.0
 * @date 2023年07月02日 21:24
 * 博客地址:<a href="http://woaijava.cc/">博客地址</a>
 */
@Component
@ConfigurationProperties(prefix = "vip")
public class UserListConfiguration {
    private List<User> userList;
    // set get 省略
}
Nach dem Login kopieren
Nach dem Login kopieren
🎜Überprüfung: 🎜🎜🎜GET🎜🎜http://localhost:8089/preconfiguration/index🎜🎜🎜Normalerweise legen wir eine Kategorie für die Konfigurationselemente fest werden als Präfixe gesetzt, einheitlich und objektorientiert verarbeitet. 🎜🎜Aber wie geht man mit mehreren Lesevorgängen (Array-Typ) um? 🎜🎜Wir können die folgende Methode verwenden. 🎜

也是ConfigurationProperties注解

application.properties配置文件配置项:

vip.userList[0].name=tian01
vip.userList[0].age=20
vip.userList[1].name=tian02
vip.userList[1].age=21
Nach dem Login kopieren
Nach dem Login kopieren

定义一个User类:

public class User {
    private String name;
    private Integer age;
    
    //set get toString 省略
}
Nach dem Login kopieren
Nach dem Login kopieren

配置读取类:

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * @author tianwc  公众号:java后端技术全栈、面试专栏
 * @version 1.0.0
 * @date 2023年07月02日 21:24
 * 博客地址:<a href="http://woaijava.cc/">博客地址</a>
 */
@Component
@ConfigurationProperties(prefix = "vip")
public class UserListConfiguration {
    private List<User> userList;
    // set get 省略
}
Nach dem Login kopieren
Nach dem Login kopieren

如果我们自定义一个custom.properties配置文件,那又该如何读取呢?

PropertySource注解

application.properties配置文件配置项:

realName=tian3
Nach dem Login kopieren

代码实现

@RestController
@RequestMapping("/propertySource")
@PropertySource("classpath:custom.properties")
public class PropertySourceController {

    @Value("${realName}")
    private String realName;
    @GetMapping("/index")
    public String test() {
        return realName;
    }
}
Nach dem Login kopieren

验证:

GET

http://localhost:8089/propertySource/index

返回参数:tian3

那么,问题又来了,我们可能会因为一个配置项需要改,或者是上线后发现配置项不对,这时候就需要重启服务了,为了避免这样重启服务,我们可以引入分布式配置中心

分布式配置中心有很多实现方案,比如Nacos、Zookeeper、Qconf、disconf、Apache Commons Configuration、Spring Cloud Config等。

Das obige ist der detaillierte Inhalt von4 Möglichkeiten, die Konfiguration in Spring Boot zu lesen, zum Sammeln empfohlen!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:Java后端技术全栈
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