装修设计网站哪个最好,网页设计尺寸怎么设计,江苏住房建设厅网站,wordpress 根据分类id获取分类名称目录
一、配置文件介绍
二、配置简单数据
三、配置对象数据
四、配置集合数据
五、读取配置文件数据
六、占位符的使用 一、配置文件介绍 SpringBoot项目中#xff0c;大部分配置都有默认值#xff0c;但如果想替换默认配置的话#xff0c;就可以使用application.prop…目录
一、配置文件介绍
二、配置简单数据
三、配置对象数据
四、配置集合数据
五、读取配置文件数据
六、占位符的使用 一、配置文件介绍 SpringBoot项目中大部分配置都有默认值但如果想替换默认配置的话就可以使用application.properties或者application.yml或者application.yaml进行配置。SpringBoot默认会从resources目录下加载application.properties或application.yml文件。其中application.properties文件是键值对类型的文件之前一直在使用所以我们不再对properties文件进行阐述。 如果我们想要查找配置文件如何覆盖SpringBoot项目的默认配置那么可以查看下面链接
Spring Boot Reference Documentationhttps://docs.spring.io/spring-boot/docs/2.7.6/reference/htmlsingle/#appendix.application-properties.server 除了properties文件外SpringBoot还支持YAML文件进行配置。YAML文件的扩展名为 .yml 或 .yaml 它的基本要求如下
大小写敏感使用缩进代表层级关系相同的部分只出现一次
比如使用properties文件配置tomcat端口 server.port8888 而使用YAML文件配置tomcat端口 server: port: 8888 二、配置简单数据
除了覆盖默认配置我们还可以在YAML文件中配置其他信息以便我们在项目中使用。配置简单数据的方式如下
语法 数据名: 值 示例 name: LYL 注意value之前有一个空格
三、配置对象数据
语法 对象: 属性名1: 属性值 属性名2: 属性值 # 或者 对象: {属性名1: 属性值,属性名2: 属性值} 示例 student: age: 10 female: male address: Guangzhou # 学生2 student2: {sex: male,age: 10,address: Guangzhou} 注意属性名前面的空格个数不限在yml语法中相同缩进代表同一个级别只要每个属性前的空格数一样即可。
四、配置集合数据
语法 集合: - 值1 - 值2 # 或者 集合: [值1,值2] 示例 city1: - Beijing - Shanghai - Shenzhen - Guangzhou # 集合中元素是对象 students: - score: 100 name: zhangsan age: 10 - score: 95 name: lisi age: 25 - score: 78 name: wangwu age: 15 user: id: 1001 username: LYL address: - Beijing - Shanghai - Guangzhou - Shenzhen grades: - subject: math score: 90 - subject: english score: 39 五、读取配置文件数据
我们可以通过Value注解将配置文件中的值映射到一个Spring管理的Bean的字段上用法如下
yml文件如下 name: zhangsanstudent:age: 10female: maleaddress: Guangzhoucity1:- Beijing- Shanghai- Shenzhen- Guangzhoustudents:- score: 100name: zhangsanage: 10- score: 95name: lisiage: 25- score: 78name: wangwuage: 15user:id: 1001username: LYLaddress:- Beijing- Shanghai- Guangzhou- Shenzhengrades:- subject: mathscore: 90- subject: englishscore: 39读取配置文件
package com.example.demo.controller;import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;Controller
public class YmlController1 {Value(${name})private String name;Value(${students[1].name})private String stu_name;Value(${city1[3]})private String address;RequestMapping(/yml1)ResponseBodypublic String yml1(){System.out.println(name);System.out.println(stu_name);System.out.println(address);return name stu_name address;}
}接下来我们运行一下看看能否获得数据 OK控制台和网页端都是可以成功读取数据的。
不过要注意的是Value只能映射简单数据类型不能将yaml文件中的对象、集合映射到属性中。
那我们应该如何映射到实体类呢通过 ConfigurationProperties(prefifix对象) 可以将配置文件中的配置自动与实体进行映射这样可以将yml文件中配置的对象属性直接映射到Bean当中。
OK我们来新建一个实体类Grade因为User属性中含有该对象
package com.example.demo.pojo;public class Grade {private String subject;private int score;public Grade(){};public String getSubject() {return subject;}public void setSubject(String subject) {this.subject subject;}public int getScore() {return score;}public void setScore(int score) {this.score score;}Overridepublic String toString() {return Grade [ subject subject \ , score score ];}
}再来编写一个控制类读取配置文件
package com.example.demo.controller;import com.example.demo.pojo.Grade;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;import java.util.List;Controller
ConfigurationProperties(prefix user)
public class YmlController2 {private int id;private String username;private ListString address;private ListGrade grades;RequestMapping(/yml2)public void yml2(){System.out.println(id);System.out.println(username);System.out.println(address);System.out.println(grades);}Overridepublic String toString() {return YmlController2 [ id id , username username \ , address address , grades grades ];}public YmlController2() {}public int getId() {return id;}public void setId(int id) {this.id id;}public String getUsername() {return username;}public void setUsername(String username) {this.username username;}public ListString getAddress() {return address;}public void setAddress(ListString address) {this.address address;}public ListGrade getGrades() {return grades;}public void setGrades(ListGrade grades) {this.grades grades;}
}好了现在我们运行看看能否获得数据 OK在控制台中成功打印了说明该注解生效是可以使用的。
六、占位符的使用
YAML文件中可以使用 ${} 占位符它有两个作用
使用配置文件中的值
比如说我们使用自定义的端口并在页面展示配置文件如下图 我们再写一个控制器方法
package com.example.demo.controller;import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;Controller
public class YmlController3 {Value(${myConfig.serverPort})private int port;RequestMapping(yml3)ResponseBodypublic String getPort(){return 你的自定义端口为port;}
}运行测试 也可以是可以成功注入的。
使用框架提供的方法
SpringBoot框架提供了一些生成随机数的方法可以在yml文件中使用 ${random.value} 生成类似uuid的随机数没有-连接${random.uuid} 生成一个uuid有短杠连接${random.int} 随机取整型范围内的一个值${random.int(10)}随机生成一个10以内的数${random.int(100,200)}随机生成一个100-200 范围以内的数${random.long}随机取长整型范围内的一个值${random.long(100,200)}随机生成长整型100-200范围内的一个值 比如说随机生成一个1000-9999的端口