Rumah > Java > javaTutorial > 4 cara untuk membaca konfigurasi dalam Spring Boot, disyorkan untuk mengumpul!

4 cara untuk membaca konfigurasi dalam Spring Boot, disyorkan untuk mengumpul!

Lepaskan: 2023-08-15 16:06:23
ke hadapan
1303 orang telah melayarinya

Dalam projek Spring Boot, ia pada asasnya melibatkan membaca kandungan fail konfigurasi Artikel ini akan membincangkan beberapa cara biasa untuk membaca fail konfigurasi.

Anotasi nilai

dalam application.propertiesItem konfigurasi fail konfigurasi: application.properties配置文件配置项:

name=tian
Salin selepas log masuk

在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;
    }
}
Salin selepas log masuk

验证:

GET

http://localhost:8089/configuration/index

返回参数:

tian
Salin selepas log masuk

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

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

ConfigurationProperties注解

application.properties

user.userName=tian1
user.age=21
Salin selepas log masuk

Baca dalam kod java:

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 省略
}
Salin selepas log masuk

Pengesahan:

GET

http://localhost:8089/configuration/index

Return parameter

Jenis ini biasanya tidak mempunyai awalan, dan item konfigurasi tunggal akan dibaca seperti ini.

Jika terdapat konfigurasi awalan yang sama, maka kita boleh menggunakan kaedah berikut. Anotasi ConfigurationProperties (27, 31, 35, 0.05);font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(239, 112, 96);">application. propertiesItem konfigurasi fail konfigurasi:

vip.userList[0].name=tian01
vip.userList[0].age=20
vip.userList[1].name=tian02
vip.userList[1].age=21
Salin selepas log masuk
Salin selepas log masuk

Baca dalam javadiam:

public class User {
    private String name;
    private Integer age;
    
    //set get toString 省略
}
Salin selepas log masuk
Salin selepas log masuk
🎜Pengesahan: 🎜🎜🎜GET🎜🎜http://localhost:8089/preconfiguration/index🎜🎜 Kami biasanya meletakkan kategori item ditetapkan sebagai awalan, diproses secara seragam dan berorientasikan objek. 🎜🎜Tetapi, bagaimana untuk menangani pelbagai bacaan (jenis tatasusunan)? 🎜🎜Kita boleh menggunakan kaedah berikut. 🎜

也是ConfigurationProperties注解

application.properties配置文件配置项:

vip.userList[0].name=tian01
vip.userList[0].age=20
vip.userList[1].name=tian02
vip.userList[1].age=21
Salin selepas log masuk
Salin selepas log masuk

定义一个User类:

public class User {
    private String name;
    private Integer age;
    
    //set get toString 省略
}
Salin selepas log masuk
Salin selepas log masuk

配置读取类:

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 省略
}
Salin selepas log masuk

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

PropertySource注解

application.properties配置文件配置项:

realName=tian3
Salin selepas log masuk

代码实现

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

    @Value("${realName}")
    private String realName;
    @GetMapping("/index")
    public String test() {
        return realName;
    }
}
Salin selepas log masuk

验证:

GET

http://localhost:8089/propertySource/index

返回参数:tian3

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

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

Atas ialah kandungan terperinci 4 cara untuk membaca konfigurasi dalam Spring Boot, disyorkan untuk mengumpul!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:Java后端技术全栈
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan