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

news/2024/5/20 11:40:57

前言

本篇了解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: 1name: 张三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.mrgr.cn/p/13761814

相关文章

HBase有写入数据,页面端显示无数据量

写了一个测试类,插入几条数据,测试HBase的数据量。很简单的功能,这就出现问题了。。网页端可以看到,能够看到读写请求,但是不管是内存、还是磁盘,都没有数据。 于是就想到去HDFS查看,也是有数据…

RBAC三级树状菜单实现(从前端到后端)未完待续

1、表格设计 RBAC 2、前端路由 根据不同的用户id显示不同的菜单。 根据路由 3、多级菜单 展示所有权限,并且根据当前用户id展示它所属的角色的所有菜单。 前端树状展示 思路: 后端:传给前端map,map里1个是所有菜单&am…

Ubuntu Server版 之 apache系列 安装、重启、开启,版本查看

安装之前首先要检测是否安装过 apt list --installed | grep tool tool:要检测的名称,如mysql、apache 、ngnix 等 安装 apache sudo apt install apache2 安装apache 默认是开启的 可以通过浏览器 检测一下 service apache stop # apache 停止服务…

解决路由缓存问题

产生原因 路由只有参数发生变化时 会复用组件实例 解决 1.选择key 简单粗暴 2.选择beforeRouteUpdate钩子函数

Mybatis初识(一)

一.Mybatis是什么 MyBatis 是一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis 去除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的XML或注解来配置,和映射原始类型、接口和Java POJO (Plain Old Java Objects…

使用CRM分析数据有哪些功能?

CRM数据分析软件可以帮助企业增强竞争力,并更好地了解客户需求及市场变化,助力企业数据分析,并提供实时更新的数据和分析结果,CRM数据分析软件的主要特点是什么?包括以下6个特点。 CRM数据分析软件的主要功能通常包括…

java数组对象初始化分析

分析代码 public static void main(String[] args) {int a10,b20,c30,d 40,e 50,f60;int aa[] {a,b,c,d,e,f};aa[2] 100;}代码的字节码 图解分析 refs https://docs.oracle.com/javase/specs/jvms/se19/html/jvms-6.html#jvms-6.5.aloadhttps://docs.oracle.com/javase/sp…

pve安装ikuai并设置,同时把pve的网络连接到ikuai虚拟机

目录 前因 前置条件 安装ikuai 进入ikuai的后台 配置lan口,以及wan口 配置lan口桥接 按实际情况来设置了 单拨(PPOE拨号) 多拨(内外网设置点击基于物理网卡的混合模式) 后续步骤 pve连接虚拟机ikuai的网络以及其他虚拟机连接ikuai的网…

Linux NUMA架构(非统一内存访问)

NUMA架构 NUMA Architecture| Non Uniform Memory Access Policy/Model | Numa Node Configuration (CPU Affinity) NUMA架构产生的原因 cpu的高速处理功能和内存存储直接的速度会严重影响cpu的性能。传统的计算机单核架构,cpu通过内存总线(内存访问控制器)直接连接到一…

哈工大计算机网络课程网络安全基本原理之:身份认证

哈工大计算机网络课程网络安全基本原理之:身份认证 在日常生活中,在很多场景下我们都需要对当前身份做认证,比如使用密码、人脸识别、指纹识别等,这些都是身份认证的常用方式。本节介绍的身份认证,是在计算机网络安全…

微信小程序使用ECharts的示例详解

目录 安装 ECharts 组件使用 ECharts 组件图表延迟加载 echarts-for-weixin 是 ECharts 官方维护的一个开源项目,提供了一个微信小程序组件(Component),我们可以通过这个组件在微信小程序中使用 ECharts 绘制图表。 echarts-fo…

Ubuntu Server版 之 共享文件 samba和NFS 两种方法

NFS 和 Samba NFS : linux之间资源共享 Samba: 是windows系统与Linux系统之间资源共享的 samba 安装samba 工具 sudo apt install samba 创建共享目录 sudo mkdir /home/shared sudo chmod 777 /home/shared 配置sambd sudo vim /etc/samba/smb.con…

vue - 【完整源码】实现评论区发表评论、回复评论、评论盖楼等功能,前端PC网站/移动端H5实现多用户评论与回复功能(详细示例源码,一键复制开箱即用)

效果图 在vue项目开发中,实现一个类似社交软件的评论区发表留言及回复等评论功能效果,可以无限回复盖楼。 一、功

Python - OpenCV识别条形码、二维码(已封装,拿来即用)

此代码可识别条形码和二维码,已封装好,拿来即用: import cv2 import pyzbar.pyzbar as pyzbar import numpy from PIL import Image, ImageDraw, ImageFontclass CodeScan():def __init__(self):super(CodeScan, self).__init__()def decode…

【C++】继承

文章目录 一.继承的概念及定义二.继承方式与访问限定符三.基类和派生类对象赋值转换四.继承中的作用域五.子类的默认成员函数六.继承和友元、静态成员的关系七.菱形继承和菱形虚拟继承1.菱形继承所引发的问题(1)二义性(1)数据冗余…

Tomcat的基本使用,如何用Maven创建Web项目、开发完成部署的Web项目

Tomcat 一、Tomcat简介二、Tomcat基本使用三、Maven创建Web项目3.1 Web项目结构3.2开发完成部署的Web项目3.3创建Maven Web项目3.3.1方式一3.3.2方式二(个人推荐) 总结 一、Tomcat简介 Web服务器: Web服务器是一个应用程序(软件&…

01 Excel常用高频快捷键汇总

目录 一、简介二、快捷键介绍2.1 常用基本快捷键1 复制:CtrlC2 粘贴:CtrlV3 剪切:CtrlX4 撤销:CtrlZ5 全选:CtrlA 2.2 常用高级快捷键1 单元格内强制换行:AltEnter2 批量输入相同的内容:CtrlEnt…

自动化运维工具——Ansible

自动化运维工具——Ansible 一、Ansible概述二、ansible 环境安装部署1.管理端安装 ansible2.ansible 目录结构3.配置主机清单4.配置密钥对验证 三、ansible 命令行模块1.command 模块2.shell 模块3.cron 模块4.user 模块5.group 模块6.copy 模块7.file 模块8.hostname 模块9&a…

Idea 结合docker-compose 发布项目

Idea 结合docker-compose 发布项目 这里写目录标题 Idea 结合docker-compose 发布项目Docker 开启远程访问功能 添加相应端口配置IDEA 链接Docker配置项目 docker-compose.yml本地还需要安装 dockerwin11 安装本地Docker 可能存在问题 Linux内核不是最新 Docker 开启远程访问功…

flask实现一个登录界面

flask实现一个登录界面 基础的Flask项目结构 forms.py:定义登录表单和表单字段的文件。templates/login.html:用于渲染登录表单的 HTML 模板文件。routes.py:定义应用的路由和视图函数的文件。__init__.py:创建并初始化 Flask 应…