.yml 配置
# 自定義開發(fā)環(huán)境端口 默認(rèn)本地 9801
# serverPort: 9801
spring:
profiles: dev
# 環(huán)境的配置
server:
port: 9801
# 自定義對象/配置
student:
name: 李四
age: 25
jobs: #數(shù)組方式1 @ConfigurationProperties 方式可以獲??; @Value方式、Environment方式獲取不到
- java
linux
123
loves: [看電影,玩游戲,游泳,aaaa,456] # 數(shù)組方式2 @ConfigurationProperties 方式可以獲?。?@Value方式、Environment方式獲取不到
books: 水滸,西游,紅樓夢,三國 # 數(shù)組方式3 @所有方式都可獲取
frands: # List方式1 @ConfigurationProperties 方式可以獲?。?@Value方式、Environment方式獲取不到
- 李雷
韓梅梅
本山
familys: [李父,李牧,李姐,李弟,456] # List方式2 @ConfigurationProperties 方式可以獲?。?@Value方式、Environment方式獲取不到
organ: 眼,#耳,.#口,鼻 # List方式3 @所有方式都可獲取
# 對象集合 @ConfigurationProperties 方式可以獲取并封裝成對象集合
users:
user:
- name: tom
age: 18
- name: 韓梅梅
age: 15
controller代碼
import com.tencent.gateway.entity.Student;
import com.tencent.gateway.entity.User;
import com.tencent.gateway.entity.Users;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.core.env.Environment;
import org.springframework.beans.factory.annotation.Value;
import java.util.Arrays;
import java.util.List;
@RestController
@RequestMapping("/test")
public class TestController {
//方式1:對象中使用 @ConfigurationProperties 加載配置到對象屬性中
@Autowired
private Student student;//配置文件對應(yīng)的對象
@Autowired
private Users users;//配置文件對應(yīng)的對象集合
@GetMapping("/test1")
public Object test1(){
System.out.println("方式1:@ConfigurationProperties 獲取配置:");
System.out.println();
System.out.println(student.name);
System.out.println(student.age);
System.out.println(Arrays.toString(student.jobs));
System.out.println(Arrays.toString(student.loves));
System.out.println(Arrays.toString(student.books));
System.out.println(student.frands.toString());
System.out.println(student.familys.toString());
System.out.println(student.organ.toString());
System.out.println();
System.out.println("usersList:");
for (User user: users.user){
System.out.println(user.name);
System.out.println(user.age);
}
return "success";
}
//方式2:使用 Environment
@Autowired
Environment env;
@GetMapping("/test2")
public Object test2(){
System.out.println("方式2:Environment 獲取配置:");
System.out.println();
System.out.println(env.getProperty("server.port"));
System.out.println(env.getProperty("student.name"));
System.out.println(env.getProperty("student.age"));
System.out.println(env.getProperty("student.jobs")); //獲取不到
System.out.println(env.getProperty("student.loves")); //獲取不到
System.out.println(env.getProperty("student.books")); // 可以獲取
System.out.println(env.getProperty("student.frands")); //獲取不到
System.out.println(env.getProperty("student.familys")); //獲取不到
System.out.println(env.getProperty("student.organ")); // 可以獲取
return "success";
}
//方式3:使用 @Value 映射 獲取指定配置參數(shù)值, 冒號(hào)后的1111為默認(rèn)值
@Value("${server.port:1111}")
private String port;
@Value("${student.name}")
public String name;
@Value("${student.age}")
private int age;
@Value("${student.jobs:}")
private String[] jobs;
@Value("${student.loves:}")
private String[] loves;
@Value("${student.books:}")
private String[] books;
@Value("${student.frands:a,a,a,a}")//冒號(hào)后指定默認(rèn)值
private List<String> frands;
@Value("${student.familys:}")
private List<String> familys;
@Value("#{'${student.organ}'.split(',')}") //使用指定分割符分割字符串?dāng)?shù)組(部分字符不支持,比如 .)
private List<String> organ;
@Value("#{'${student.organ}'.split('#')}") //使用指定分割符分割字符串?dāng)?shù)組(部分字符不支持,比如 .)
private List<String> organ2;
@GetMapping("/test3")
public Object test3(){
System.out.println("方式3:@Value 映射 獲取配置:");
System.out.println();
System.out.println(port);
System.out.println(name);
System.out.println(age);
System.out.println(Arrays.toString(jobs)); //獲取不到
System.out.println(Arrays.toString(loves)); //獲取不到
System.out.println(Arrays.toString(books)); // 可以獲取
System.out.println(frands.toString()); //獲取不到
System.out.println(familys.toString()); //獲取不到
System.out.println();
System.out.println("organ:(逗號(hào)分割)");
System.out.println(organ.toString()); // 可以獲取
for (String organSplit: organ){
System.out.println(organSplit);
}
System.out.println();
System.out.println("organ2:(號(hào)分割)");
System.out.println(organ2.toString()); // 可以獲取
for (String organSplit: organ2){
System.out.println(organSplit);
}
return "success";
}
}
實(shí)體類
Student.java
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
@ConfigurationProperties(prefix = "student")
public class Student {
public String name;
public int age;
public String[] jobs;
public String[] loves;
public String[] books;
public List<String> frands;
public List<String> familys;
public List<String> organ;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String[] getJobs() {
return jobs;
}
public void setJobs(String[] jobs) {
this.jobs = jobs;
}
public String[] getLoves() {
return loves;
}
public void setLoves(String[] loves) {
this.loves = loves;
}
public List<String> getFrands() {
return frands;
}
public void setFrands(List<String> frands) {
this.frands = frands;
}
public List<String> getFamilys() {
return familys;
}
public void setFamilys(List<String> familys) {
this.familys = familys;
}
public String[] getBooks() {
return books;
}
public void setBooks(String[] books) {
this.books = books;
}
public List<String> getOrgan() {
return organ;
}
public void setOrgan(List<String> organ) {
this.organ = organ;
}
}
Users.java
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
@ConfigurationProperties(prefix = "users")
public class Users {
public List<User> user; //自動(dòng)將users.user下的所有數(shù)組封裝到User對象集合中
public List<User> getUser() {
return user;
}
public void setUser(List<User> user) {
this.user = user;
}
}
User.java
public class User {
public String name;
public int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
方式一、
http://localhost:9801/test/test1
方式二、
http://localhost:9801/test/test2
方式三、
http://localhost:9801/test/test3
參考:
SpringBoot:yml文件詳解-CSDN博客文章來源:http://www.zghlxwxcb.cn/news/detail-743244.html
https://www.jb51.net/article/216769.htm文章來源地址http://www.zghlxwxcb.cn/news/detail-743244.html
到了這里,關(guān)于springboot yml文件自定義配置的讀取、使用 字符串 數(shù)組 對象 集合的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!