认识 springboot 之 它的配置文件 -2

news2024/9/23 1:25:26

前言

本篇了解springboot中配置的作用,介绍配置文件的种类,介绍简单使用配置文件,简单的小技巧如何设置注释,开启热部署等等,如有错误,请在评论区指正,让我们一起交流,共同进步!


文章目录

  • 前言
  • 1.配置文件是什么?
  • 2. 两种配置文件的格式
    • 2.1 application.properties - 新手推荐使用
    • 2.2 application.yml / application.yaml
  • 3. 配置文件中使用的注释
  • 4. springboot开启热部署
    • 什么是springboot的热部署?
    • 配置热部署:
  • 5. 在不同环境中设置配置文件
  • 总结

本文开始

1.配置文件是什么?

配置文件的作用:配置项目中所有重要的数据,例如数据库连接信息,启动端口等等;

  • 配置文件中配置类型的分类:
    a)系统配置项 ex : server.port ; - 给系统/框架使用
    b)用户自定义配置 ex : my_image.path;- 开发者使用
  • 读取配置项:通过注释@Value() + 注释参数为 " $ {} " =》例如:@Value(“${my_image.path}”) =》再设置一个属性myImage 就会存放到该属性中;

2. 两种配置文件的格式

2.1 application.properties - 新手推荐使用

格式:键值形式 kay=value
例如:server.port=8081

注释特点:默认字符集不是UTF-8, 写注释会乱码;解决方式在下面,设置一下就行了;

优点:配置文件结构清晰:都是key=value
.properties 与 .yml 同时出现,系统默认识别.properties
缺点:相同的配置名称不能省略

.properties配置数据库信息示例:

在这里插入图片描述

读取配置文件:

  • xxx.properties读取属性:通过注释@Value(): @Value(“${属性名}”)

2.2 application.yml / application.yaml

格式:树形形式 kay: value - 分层级
注释特点:默认字符集是UTF-8, 写注释不会乱码;
例如:注意 值 与 冒号 之间有空格;注意缩进关系;

# 下列分层级 相当于 server.port=8082
server: 
  port: 8082

优点:写法简单, 支持多编程语言;

.yml配置数据库信息示例:

在这里插入图片描述

读取配置文件

  • xxx.yml 读取属性:通过注释@Value(): @Value(“${属性名}”)
  • yml中读取对象的方式:
    使用注解:@ConfigurationProperties()
    【注】读取对象的注释与五大类注释一起使用;
    读取yml配置文件中的对象,先创建一个与对象对应的类;类中的属性与yml配置文件的属性一一对应;且创建的类中必须包含get,set方法;
//配置文件中内容
student:
  id: 1
  name: 张三
  age: 18
  
//创建类,读取yml中的对象
@ConfigurationProperties("student")
@Component // 使用5大类注解目的:该类会随着springboot的启动而启动
public class User {
    private int id;
    private String name;
    private int age;
//类中的属性与配置文件中的属性相对应,并带有get + set方法
//......省略get+set方法

//显示
@Controller
@ResponseBody
@RequestMapping("/user")
public class UserController {
    @Autowired //获取:将容器中的对象,给User对象
    private User user;
    @PostConstruct //初始化
    public void doPostContruct() {
        System.out.println(user.toString());
    }
}

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

  • 两种配置文件的区别
    a) 使用不同:properties使用key=value形式,而.yml使用key冒号+空格+value的形式;
    b) 通用性不一样:properties只是java中的配置文件,yml支持多种语言;
    c) yml支持多种数据类型;

3. 配置文件中使用的注释

注释一样,但是
application.properties默认编码不是UTF-8,会出现乱码;
application.yml 默认编码是UTF-8
解决方式:
在设置中找到settings 和 New Projects Setup 中的Setting for New Projects 搜索encoding, 将所有编码设置为UTF-8;

在这里插入图片描述

在这里插入图片描述

4. springboot开启热部署

什么是springboot的热部署?

热部署作用:自己写完代码不需要手动重启,新代码可以自动生效;(只执行修改过的.class文件,不用重启项目,提高了开发效率)

配置热部署:

1.添加springboot-dev-tool依赖
2.在idea设置中配置,开启项目自动编译

在这里插入图片描述

在这里插入图片描述

5. 在不同环境中设置配置文件

1.配置文件的约定:application-xxx.properties; (xxx处可修改)
2.配置了许多环境,在application.properties设置运行环境:
spring.profiles.activ=dev

//设置的配置文件
application.properties
application-dev.properties
application-prod.properties
application-test.properties

总结

✨✨✨各位读友,本篇分享到内容如果对你有帮助给个👍赞鼓励一下吧!!
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!

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

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

相关文章

内存分区模型

C程序在执行时,将内存大方向划分为4个区域 代码区:存放函数体的二进制代码,由操作系统进行管理的全局区:存放全局变量和静态变量以及常量栈区:由编译器自动分配释放, 存放函数的参数值,局部变量等堆区:由程…

ReentrantLock锁的实现

ReentrantLock基于AQS,在并发编程中可以实现公平锁和非公平锁来对同步资源进行控制,并且是可重入锁。 1.ReentrantLock中的类的继承结构: 2.构造方法: 3.非公平锁的实现 看是否能够通过CAS来设置state来获取到锁,如果…

【数据结构】这堆是什么

目录 1.二叉树的顺序结构 2.堆的概念及结构 3.堆的实现 3.1 向上调整算法与向下调整算法 3.2 堆的创建 3.3 建堆的空间复杂度 3.4 堆的插入 3.5 堆的删除 3.6 堆的代码的实现 4.堆的应用 4.1 堆排序 4.2 TOP-K问题 首先,堆是一种数据结构,一种特…

Selenium开发环境搭建

1.下载Python https://www.python.org/downloads/ 下载下来选择自己创建的路径进行安装,然后配置环境变量 cmd命令框查看 2.安装selenium cmd命令框输入: pip install selenium3.下载pycharm https://www.jetbrains.com/pycharm/download/#sec…

VLOOKUP多条件查询

LOOKUP(1,0/((A3:A15A18)*(C3:C15C18)),F3:F15)

打印Winfrom控件实现简陋版的打印(C#)

本文在前面写的博文基础上进行修改:利用Graphics的CopyFromScreen实现简陋版的打印(C#)_zxy2847225301的博客-CSDN博客 通过截图的方式进行打印在前面的文章后面已经介绍过,有问题。 UI布局如下: 代码如下: using System; using…

无涯教程-jQuery - Dialog组件函数

小部件对话框函数可与JqueryUI中的小部件一起使用。对话框是在HTML页面上显示信息的一种不错的方法。对话框是一个带有标题和内容区域的浮动窗口。此窗口可以移动,调整大小,并且默认情况下可以使用" X"图标关闭。 Dialog - 语法 $( "#d…

CAN转ETHERCAT网关can协议和485协议区别

大家好,今天要跟大家分享一款自主研发的通讯网关,JM-ECT-CAN。这款产品能够将各种CAN总线和ETHERCAT网络连接起来,实现高效的数据传输和通信。那么,这款通讯网关具体有哪些功能和特点呢?接下来,我们就一起来…

苍穹外卖心得与总结【对比瑞吉】【如何获得铁粉】

对于苍穹外卖项目,从学习课程加复习已经13天了。 对于一名已经学习过SSMLinuxRedis数据库的Java练习生来说,这个项目相对于之前学习的《瑞吉外卖》新增了很多功能和技术,是很值得练手和提升的课程,下面给出自己的一些见解。&#…

大厂程序员的水平比非大厂高很多嘛?

最近一个月,筛选了一百多份简历,前前后后面试了二三十人,基本上都是有大厂经历的人。同时,也录用了几个有大厂经历的。但整体而言,打破了对大厂出来的都是优质人才的幻觉。看到的实际情况与想象中的落差还是比较大的。…

从零开始学python(十二)如何成为一名优秀的爬虫工程师

前言 回顾之前讲述了python语法编程 必修入门基础和网络编程,多线程/多进程/协程等方面的内容,后续讲到了数据库编程篇MySQL,Redis,MongoDB篇,和机器学习,全栈开发,数据分析前面没看的也不用往…

ChatIE:通过多轮问答问题实现实命名实体识别和关系事件的零样本信息抽取,并在NYT11-HRL等数据集上超过了全监督模型

项目设计集合(人工智能方向):助力新人快速实战掌握技能、自主完成项目设计升级,提升自身的硬实力(不仅限NLP、知识图谱、计算机视觉等领域):汇总有意义的项目设计集合,助力新人快速实…

【机器学习】Cost Function

Cost Function 1、计算 cost2、cost 函数的直观理解3、cost 可视化总结附录 首先,导入所需的库: import numpy as np %matplotlib widget import matplotlib.pyplot as plt from lab_utils_uni import plt_intuition, plt_stationary, plt_update_onclic…

【数字IC设计】VCS仿真DesignWare IP

DesignWare介绍 DesignWare是SoC/ASIC设计者最钟爱的设计IP库和验证IP库。它包括一个独立于工艺的、经验证的、可综合的虚拟微架构的元件集合,包括逻辑、算术、存储和专用元件系列,超过140个模块。DesignWare和 Design Compiler的结合可以极大地改进综合…

c++ 给无名形参提供默认值

如上图,若函数的形参不在函数体里使用,可以不提供形参名,而且可以给此形参提供默认值。也能编译通过。 在看vs2019上的源码时,也出现了这种写法。应用SFINAE(substitute false is not an error)原则&#x…

Go Ethereum源码学习笔记 001 Geth Start

Go Ethereum源码学习笔记 前言[Chapter_001] 万物的起点: Geth Start什么是 geth?go-ethereum Codebase 结构 Geth Start前奏: Geth Consolegeth 节点是如何启动的NodeNode的关闭 Ethereum Backend附录 前言 首先读者需要具备Go语言基础,至少要通关菜鸟…

周末放松大作战:优化生活质量的秘密武器

博主 默语带您 Go to New World. ✍ 个人主页—— 默语 的博客👦🏻 《java 面试题大全》 🍩惟余辈才疏学浅,临摹之作或有不妥之处,还请读者海涵指正。☕🍭 《MYSQL从入门到精通》数据库是开发者必会基础之…

C++代码质量提升指南-工具篇

提高代码质量的方法: 使用代码规范:代码规范是指对代码的编写风格和格式进行规范的规则。使用代码规范可以提高代码的可读性、可维护性和可扩展性。进行单元测试:单元测试是一种用于验证代码单元是否正确运行的测试方法。进行单元测试可以帮…

C++ ——STL容器【list】模拟实现

代码仓库: list模拟实现 list源码 数据结构——双向链表 文章目录 🍇1. 节点结构体🍈2. list成员🍉3. 迭代器模板🍊4. 迭代器🍋5. 插入删除操作🍌5.1 insert & erase🍌5.2 push_…

Python实现GA遗传算法优化循环神经网络回归模型(LSTM回归算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 遗传算法(Genetic Algorithm,GA)最早是由美国的 John holland于20世…