Spring Boot 配置文件
时间:2022-07-22
本文章向大家介绍Spring Boot 配置文件,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
0x01 前言
springboot
项目创建完成后,在 resources
目录下会生成一个 application.properties
文件,用于编写springboot
项目的配置。
但官方不推荐使用.properties
的配置文件,所以我们这里把原来的 application.properties
修改为yaml
配置文件,即重命名为 application.yaml
0x02 yaml的基本语法
注意:yaml对空格的要求十分严格
对象形式
student:
name: b5ck
age: 18
# 行内写法
student2: {name: b5ck,age: 3}
数组形式
pets:
- cat
- dog
- pig
# 行内写法
pets2: [cat,dog,pig]
0x03 修改默认配置
修改 springboot
默认的监听端口
application.yaml
server:
port: 8888
重启 springboot
项目,监听端口修改为 8888
0x04 yaml可以直接给实体类赋值
先在pom.xml中导入spring的配置处理器
<!--导入配置文件处理器,配置文件进行绑定就会有提示-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
创建两个实体类 Person
和 Dog
Dog实体类
@Component // 将实体类添加到spring组件内
public class Dog {
private String name;
private Integer age;
// 使用Alt+ Inster快速构建有参、无参构造函数以及setter和getter、toString方法
}
Person 实体类
@Component
@ConfigurationProperties(prefix = "person") //与配置文件中的对象所关联
public class Person {
private String name;
private Integer age;
private Boolean happy;
private Date birth;
private Map<String,Object> maps;
private List<Object> lists;
// 创建Dog类对象
private Dog dog;
// 使用Alt+ Inster快速构建有参、无参构造函数以及setter和getter、toString方法
}
从以上两个实体类中我们用到了两个注解:
-
@Component
注解表示将这个实体类添加到spring组件中 -
@ConfigurationProperties(prefix = "person")
注解用于与配置文件的对象进行绑定,perfix对应的值为绑定的对象名称,目前该注解使实体类绑定配置文件中的person对象。
接下来我们在配置文件 application.yaml
中设置我们实体类的属性值
person:
name: b5ck
age: 18
happy: false
birth: 2020/01/17
maps: {k1: v1,k2: v2}
lists:
- code
- music
- girl
dog:
name: 123
age: 3
基本配置已完成,接下来我们在 srpingboot
单元测试中输出我们的实体类,看下属性的值是否设置成功
单元测试类
@SpringBootTest
class ApplicationTests {
@Autowired //自动装配实体类
private Person person;
@Test
void contextLoads() {
System.out.println(person); //输出对象信息
}
}
构建并运行单元测试, 得到输出的实体类信息
0x05 在yaml中使用表达式
person:
name: b5ck.${random.uuid} # 随机uuid
age: ${random.int} # 随机数
happy: false
birth: 2020/01/17
maps: {k1: v1,k2: v2}
lists:
- code
- music
- girl
dog:
name: 旺财
age: 3
0x06 JSR303 校验
spring-boot中可以用@validated来校验数据,如果数据异常则会统一抛出异常,方便异常中心统一处理。我们这里来写个注解让我们的name只能支持Email格式
@Component //注册bean
@ConfigurationProperties(prefix = "person")
@Validated //数据校验
public class Person {
//@Value("${person.name}")
@Email //name必须是邮箱格式
private String name;
}
还有很多内置校验规则,也可以自定义正则表达式进行校验,这里我们不进行详细的举例
更多校验案例参考: (https://blog.csdn.net/qq_28867949/article/details/78922520)
- Golang语言--多线程求和
- AlphaGo Zero代码迟迟不开源,TF等不及自己推了一个
- nyoj---快速查找素数
- 转--Golang图像处理工具库,图像相似度计算,图像二值化
- HDUOJ----湫湫系列故事——减肥记I
- HDUOJ----Eddy's research I
- 【亚马逊加盟对抗谷歌联盟ONNX】微软Facebook深度学习开源联盟再添盟友
- HDUOJ--8球胜负
- HDUOJ--点球大战
- Golang语言社区--使用百度API获取经纬度
- HDUOJ---The number of divisors(约数) about Humble Numbers
- HDUOJ----最少拦截系统
- Go语言截取字符串函数用法
- HDUOJ -----免费馅饼
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 移动端下拉筛选
- JS滚动条触底加载更多
- 7.深入k8s:任务调用Job与CronJob及源码分析
- 钢材信息小程序开发总结(三) ---EggJS
- Canvas实现刮奖效果
- 视频高清直播RTMP视频推流组件EasyRTMP-IOS版如何使用wchar_t*类型参数?
- 简单的谷歌插件开发记录
- ElementUI的DatePicker(日期选择器)限定范围的玩法
- ThreeJS实现船行效果
- CSS实现简易翻书效果
- EggJS给Vue单页面提供静态服务
- [翻译]Pexels免费图片API文档
- 如何搭建一个高可用的服务端渲染工程
- [Go] Golang练习项目-GO语言实现插入排序
- vue3+webpack项目搭建实验