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
このタイプには通常プレフィックスがなく、単一の構成項目がこの方法で読み取られます。
同じプレフィックス構成がある場合は、次の方法を使用できます。
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 通常、構成アイテムの一種がプレフィックスとして設定され、均一に処理され、オブジェクト指向で処理されます。
しかし、複数の読み取り (配列型) をどのように処理するのでしょうか?
次の方法を使用できます。
在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
配置文件,那又该如何读取呢?
在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 サイトの他の関連記事を参照してください。