【浅学Java】SpringBoot 配置文件

news2024/9/20 14:40:14

SpringBoot 配置文件

  • 1. 配置文件的作用
  • 2. 配置文件的格式
    • .properties配置文件的格式
    • .properties配置文件的缺点
    • .yml配置文件的格式
    • .yml配置文件的优点
  • 3. 配置文件的分类
    • 3.1 两种类型配置文件
    • 3.2 用户自定义配置项
  • 4. 配置信息读取
    • 4.1 自定义配置信息读取
    • 4.2 系统配置信息读取
    • 4.3 特别注意_Value中的数据格式
    • 4.4 yml中字符串修饰符的问题
  • 5. 配置对象以及读取对象
  • 6. 配置集合以及读取集合
  • 7. 设置不同环境的配置项

1. 配置文件的作用

整个项目所有的重要数据都是在配置文件中配置的,比如:

  1. 数据库中的连接信息
  2. 项目的启动端口

2. 配置文件的格式

Spring Boot 配置文件的格式主要有两种:

  1. properties
  2. yml

如下所示:
在这里插入图片描述

注意:

  1. 约定配置文件的文件名都是用application开头
  2. 当两者格式的配置文件同时存在时,约定 .properties 的优先级大于 .yml

.properties配置文件的格式

实例:
在这里插入图片描述

.properties配置文件的缺点

可以看出, properties 有明显的缺,就是有挺多的冗余信息:
在这里插入图片描述

.yml配置文件的格式

实例:
在这里插入图片描述

.yml配置文件的优点

  1. 书写简便,解决了.properties配置文件信息冗余的问题
  2. yml 是⼀个可读性⾼,写法简单、易于理解,它的语法和 JSON 语⾔类似。
  3. yml ⽀持更多的数据类型,它可以简单表达清单(数组)、散列表,标量等数据形态。它使⽤空⽩符号缩进和⼤量依赖外观的特⾊,特别适合⽤来表达或编辑数据结构、各种配置⽂件等。
  4. yml ⽀持更多的编程语⾔,它不⽌是 Java 中可以使⽤在 Golang、PHP、Python、Ruby、JavaScript、Perl 中

3. 配置文件的分类

3.1 两种类型配置文件

  1. SpringBoot内置的配置项,比如server.port
  2. 用户自定义得配置项

3.2 用户自定义配置项

# 字符串
string.value: Hello
# 布尔值,true或false
boolean.value: true
boolean.value1: false
# 整数
int.value: 10
int.value1: 0b1010_0111_0100_1010_1110 # ⼆进制
# 浮点数
float.value: 3.14159
float.value1: 314159e-5 # 科学计数法
# Null,~代表null
null.value: ~

4. 配置信息读取

4.1 自定义配置信息读取

首先在配置信息中,配置一个自定义信息:
在这里插入图片描述
然后读取:

@RestController
public class TestController {

    @Value("${mykey.key1}")
    private String mykey;

    @RequestMapping("/hi")
    public String sayhi(){
        return "hi,"+mykey;
    }
}

打印结果:
在这里插入图片描述

4.2 系统配置信息读取

以项目端口号为实例,先配置项目端口号:
在这里插入图片描述
然后读取:

@RestController
public class TestController {

    @Value("${server.port}")
    private String port;

    @RequestMapping("/hi")
    public String sayhi(){
        return "hi,"+port;
    }
}

打印结果:
在这里插入图片描述

4.3 特别注意_Value中的数据格式

在这里插入图片描述

4.4 yml中字符串修饰符的问题

在这里插入图片描述
yml配置如果使用了双引号修饰value值,那么value值就会触发其本身的作用,比如:\n表示换行。

5. 配置对象以及读取对象

先在 .yml 配置文件中配置 student对象:
在这里插入图片描述
创建和配置文件相对于的Student类:

注意:要想上面的ConfigurationProperties能成功绑定,就必须是这个类具Setter方法

@Component//将该对象存储在Spring当中
@ConfigurationProperties(prefix = "student")//把配置文件中的student配置赋值给当前的对象
@Data//使该类中的变量有Getter和Setter方法,
public class Student {
    private int id;
    private String name;
    private Integer age;
}

运行测试类:

@RestController
public class TestController {
    @Autowired
    private Student student;
    @RequestMapping("/hi")
    public String sayhi(){
        return "id:"+student.getId()+" | name:"+student.getName();
    }
}

运行结果:
在这里插入图片描述

6. 配置集合以及读取集合

在配置文件中创建一个集合:
在这里插入图片描述
创建和配置文件中相对于的类:

@Component
@ConfigurationProperties(prefix = "dbtypes")
@Data
public class DBTypes {
    private List name;//这个名字必须和配置文件中的name所对应
}

运行测试类:

@RestController
public class TestController {
    @Autowired
    private DBTypes dbTypes;
    @RequestMapping("/hi")
    public String sayhi(){
        return dbTypes.toString();
    }
}

运行结果:
在这里插入图片描述

7. 设置不同环境的配置项

创建一下配置文件:
在这里插入图片描述
每个配置文件中都配置一个端口号,然后在 application.yml 中选择某一个配置,如application-dev.yml:
在这里插入图片描述

那么启动项目,项目将在8888端口运行,即dev端口:
在这里插入图片描述

需要注意的是:在创建各个环境的配置文件时,必须以 application- 开头,其后面跟着字符就是环境名称,在 application.yml 中选择时,写的就是它。即:
在这里插入图片描述

这种方式就可以控制程序在不同环境中运行,比如果dev环境使用的时数据库A,test环境数据库B,切换这两者时,就只需要在application.yml中重写选择就行,就不需要重新写,即用啥环境就选择啥环境

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/64794.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL高可用方案之MHA

目录 一、简介 二、MHA特点 三、搭建MySQL MHA 1、安装MHA 2、在所有服务器上配置无密码认证 3、在manager节点上配置MHA 4、 manager节点编辑配置文件,管理 mysql 节点服务器 5、在Master服务器上手动开启vip 6、在 manager 节点上测试 ssh 无密码认证 7、…

安装JDK8绿色版

前言:官网提供的JDK8只有安装包,没有绿色免安版,而我们开发时需要根据需求使用不同的JDK版本,使用安装包安装过程会写入注册表,不方便便携式使用,还会附带安装Java 8 Update,会自动更新。而绿色…

详细介绍NLP中文分词原理及分词工具

基于词表的分词方法 正向最大匹配算法FMM 从左到右扫描文本,得到词的最大匹配。 案例分析: 用正向最大匹配法对“秦皇岛今天晴空万里”进行中文分词,见下表。 词典 :“秦皇岛”“岛”“今天”“天晴”“晴空万里”“万里”………

《数据在外设中的存储》

【一】磁盘的物理结构 我们现在很少看到磁盘了,我们电脑使用的大部分使用的是nvme协议的固态硬盘,差一点的使用的是sata固态接口的硬盘了,磁盘在我们电脑上尤其是笔记本电脑上是很少存在的,难道磁盘真的穷途末路了吗?显…

confluence 6.7.1-x64.bin安装

confluence数据库的配置文件:# cat /var/atlassian/application-data/confluence/confluence.cfg.xml 1: 安装包 jdk 2: 执行./atlassian-confluence-6.7.1-x64.bin 设置安装目录和数据目录 启动 service confluence start 3&#xff…

[附源码]计算机毕业设计社区住户信息管理系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

连阿里P8都赞不绝口的“分布式架构原理设计笔记”到底有多牛

在分布式系统中,一次业务处理可能需要多个应用来实现,比如用户发送一次下单请求,就涉及到订单系统创建订单,库存系统减库存,而对于一次下单,订单创建与减库存应该是要同时成功或者同时失效,但在…

matlab中的隐马尔可夫模型(HMM)实现

隐马尔可夫模型(HMM)简介 隐马尔可夫模型(HMM)是一个在你观察到的输出顺序,但不知道状态序列模型产生输出的过程。 去年,我们为一家公司进行了短暂的咨询工作,该公司正在构建一个主要基于隐马…

借助PyCharm在代码中自动添加作者、日期

名人说:闻道有先后,术业有专攻。——韩愈 Code_流苏(CSDN) o(‐^▽^‐)o很高兴你打开了本篇博客,跟着步骤一起去设置吧! Pycharm安装教程请点这里 目录一、背景缘由二、设置方法三、补充一、背景缘由 在用…

左神:中级提升班5

1.斐波那切数列套路 1.1F(N)F(N-1)F(N-2) 1.2F(N)3F(N-1)-4F(N-3)6F(N-5) 1.3生牛问题 1.4达标串数量 1.5取最少的木棍 2.背包问题 3.找工作 4.判断是否符合人类正常书写 1.斐波那切数列套路 1.1F(N)F(N-1)F(N-2) 线性代数: 1. 利用初始项可以吧a,b,c,d算出来 2…

【面试题】https协议

1. http和https的区别 http是明文传输,敏感信息容易被中间劫持。https在http协议的基础上,增加了加密的特性,数据被劫持了也无法解密。现代浏览器已经开始强制使用https协议。 2. https的加密方式 2.1 对称加密 对称加密:使用…

[激光原理与应用-38]:《光电检测技术-5》- 光学测量基础 - 光调制

目录 一、光调制概述 1.1 什么是光调制 1.2 激光的光调制方法 1.3 光调制的调制 二、直接调制法 三、腔内调制法 3.1 被动调制: 3.2 主动调制: 四、腔外调制法 五、新型光调制 5.1 基于强度调制 5.2 基于相位调制 5.3 基于偏振调制 一、光调…

【前端】面试题6~10

目录 一、说一说BFC 1、BFC的概念 2、BFC布局规则 3、BFC形成的条件 3、BFC解决能的问题 4、BFC的其他 5、总结 二、说一说Vuex是什么,每个属性是干嘛的,如何使用 ? 1、Vuex是什么 2、Vuex 的属性 3、使用方法 4、简单总结 三、说…

Jsp基础了解(二)

文章目录Jsp基础了解(一)7,MVC模式和三层架构7.1 MVC模式7.2 三层架构7.3 MVC 和 三层架构8,案例8.1 环境准备8.1.1 创建工程8.1.2 创建包8.1.3 创建表8.1.4 创建实体类8.1.5 准备mybatis环境8.2 查询所有8.2.1 编写BrandMapper8.…

无模型深度强化学习算法

无模型深度强化学习算法:直接训练类神经网络模型来表示策略。这里的“无模型”指的是不建立环境模型,而非不建立任何机器学习模型。这样的策略模型可以直接用策略梯度(policy gradient)[3]训练,但是策略梯度的变异性太…

使用extundelete恢复文件-尚文网络xUP楠哥

~~全文共1462字,阅读需约5分钟。 进Q群11372462,领取专属报名福利,包含云计算学习路线图代表性实战训练大厂云计算面试题资料! 假如遇到一些恶意者试图入侵服务器或者遇到Linux系统架构师不小心误删文件或目录,可以通过extundele…

DFS 、BFS、回溯

1、dfs(res,当前结构,当前候选热数据,当前目标值,当前搜索的层级) 2、BFS(Breadth first search) 对于树来说,BFS就是层次遍历 而图的BFS 与树的BFS 不同点在于,树有根节点&#xf…

GPIO口,232串口,USB接口,485接口等接口保护电路

系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录前言一、GPIO口1、输入端2、输出端二、USB口三、232口前言 送给大学毕业后找不到奋斗方向的你(每周不定时更…

Ansible最佳实践之 AWX 启用facts缓存和模板问卷调查

写在前面 分享一些 AWX 启用facts缓存和模板问卷调查的笔记博文内容涉及: 启动facts缓存相关配置Demo启用模板调查来设置变量demo 食用方式: 需要了解 Ansible理解不足小伙伴帮忙指正 傍晚时分,你坐在屋檐下,看着天慢慢地黑下去&a…

基础入门 - Spring Boot HelloWorld 第二节

简化配置 Spring Boot 把所有的配置都固定编写在 application.properties 里,文件名是固定写法,不能改 我们如果想更改配置,几乎所有的配置都在这里面更改就可以,而且,就算你不更改,不编写配置,…