.yml 配置
# 自定义开发环境端口 默认本地 9801 # serverPort: 9801 spring: profiles: dev # 环境的配置 server: port: 9801 # 自定义对象/配置 student: name: 李四 age: 25 jobs: #数组方式1 @ConfigurationProperties 方式可以获取; @Value方式、Environment方式获取不到 - java linux 123 loves: [看电影,玩游戏,游泳,aaaa,456] # 数组方式2 @ConfigurationProperties 方式可以获取; @Value方式、Environment方式获取不到 books: 水浒,西游,红楼梦,三国 # 数组方式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;//配置文件对应的对象 @Autowired private Users users;//配置文件对应的对象集合 @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 映射 获取指定配置参数值, 冒号后的1111为默认值 @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}")//冒号后指定默认值 private Listfrands; @Value("${student.familys:}") private List familys; @Value("#{'${student.organ}'.split(',')}") //使用指定分割符分割字符串数组(部分字符不支持,比如 .) private List organ; @Value("#{'${student.organ}'.split('#')}") //使用指定分割符分割字符串数组(部分字符不支持,比如 .) private List 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:(逗号分割)"); System.out.println(organ.toString()); // 可以获取 for (String organSplit: organ){ System.out.println(organSplit); } System.out.println(); System.out.println("organ2:(号分割)"); System.out.println(organ2.toString()); // 可以获取 for (String organSplit: organ2){ System.out.println(organSplit); } return "success"; } }
实体类
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 Listfrands; public List familys; public List 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 getFrands() { return frands; } public void setFrands(List frands) { this.frands = frands; } public List getFamilys() { return familys; } public void setFamilys(List familys) { this.familys = familys; } public String[] getBooks() { return books; } public void setBooks(String[] books) { this.books = books; } public List getOrgan() { return organ; } public void setOrgan(List 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 Listuser; //自动将users.user下的所有数组封装到User对象集合中 public List getUser() { return user; } public void setUser(List 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博客
https://www.jb51.net/article/216769.htm