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.
in 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=21Java-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 省略 }Überprüfung:
GEThttp://localhost:8089/configuration/indexRückgabeparameter:
vip.userList[0].name=tian01 vip.userList[0].age=20 vip.userList[1].name=tian02 vip.userList[1].age=21Dieser 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 省略
}🎜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 省略
}
🎜Ü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
定义一个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等。
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!