ホームページ  >  記事  >  Java  >  Spring Boot で構成を読み取る 4 つの方法、収集することをお勧めします。

Spring Boot で構成を読み取る 4 つの方法、収集することをお勧めします。

Java后端技术全栈
Java后端技术全栈転載
2023-08-15 16:06:231266ブラウズ

Spring Boot プロジェクトでは、基本的に構成ファイルの内容の読み取りが関係します。この記事では、構成ファイルを読み取るいくつかの一般的な方法について説明します。

値のアノテーション

application.properties構成ファイルの構成項目:

name=tian

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;
    }
}

確認:

GET

http://localhost:8089/configuration/index

戻りパラメータ:

tian

このタイプには通常プレフィックスがなく、単一の構成項目がこの方法で読み取られます。

同じプレフィックス構成がある場合は、次の方法を使用できます。

ConfigurationProperties アノテーション

application.properties 構成ファイルの構成項目:

user.userName=tian1
user.age=21

Javadiam 内読み込み:

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 省略
}

検証:

GET

http://localhost:8089/preconfiguration/index

us 通常、構成アイテムの一種がプレフィックスとして設定され、均一に処理され、オブジェクト指向で処理されます。

しかし、複数の読み取り (配列型) をどのように処理するのでしょうか?

次の方法を使用できます。

也是ConfigurationProperties注解

application.properties配置文件配置项:

vip.userList[0].name=tian01
vip.userList[0].age=20
vip.userList[1].name=tian02
vip.userList[1].age=21

定义一个User类:

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

配置读取类:

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 省略
}

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

PropertySource注解

application.properties配置文件配置项:

realName=tian3

代码实现

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

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

验证:

GET

http://localhost:8089/propertySource/index

返回参数:tian3

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

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

以上がSpring Boot で構成を読み取る 4 つの方法、収集することをお勧めします。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はJava后端技术全栈で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。