SpringBoot(二)【学习笔记】

news2024/12/23 8:32:55

SpringBoot的配置文件

在这里插入图片描述

之前SSM项目:

每一个框架都有自己的配置文件, 每一个配置文件头文件不一样, 需要找到每个框架的头文件

SpringBoot的配置文件:

所有的框架的配置项,都可以在application.properties文件配置, 如果自定义一些配置,
修改SpringBoot默认的配置项, 可以在application.properties文件设置

Springboot配置文件能提示, 是idea 提供的功能, 必须添加对应依赖. 才有提示, 如果没有加对应依赖,那就没有这个依赖的相关配置项提示

配置文件分类

1 properties文件:key=value 每个key独占一行
2 yml文件: 有层次,相同的前缀只需要写一个, 下一层的key通过空格缩进
3 yaml文件:yml与yaml 文件后缀名不一样, 但是写法是一样, 是同一类型的文件,

推荐使用yml

yml的语法注意:

  1. 上层的key与下层key, 分行, 下层key 与上层key缩进, 缩进不推荐使用tab缩进, 推荐使用空格缩进

  2. 上层的key与下层key 直接 使用:分割 , key 与value赋值: key: value key与value之间有空格

  3. 同一层的key, 左对齐

在线properties与yml文件转换网站: https://www.toyaml.com/index.html

一个项目可以同时有多种类型配置文件: properties, yml , yaml

  1. 如果多个配置文件都配置相同的项:

优先级: properties > yml > yaml>默认配置项

  1. 如果多个配置文件配置不同配置项:

Springboot这些配置文件中配置项都生效, 合并在一起

实际开发, 只选择一种配置文件

读取yml文件中的数据

1.读取单一数据
yaml中保存的单个数据,可以使用Spring中的注解@Value读取单个数据,属性名引用方式:${一级属性名.二级属性名……}
在这里插入图片描述
注意:使用@Value注解时,要将该注解写在某一个指定的Spring管控的bean的属性名上方,这样当bean进行初始化时候就可以读取到对应的单一数据了。

2.读取全部数据
读取单一数据可以解决读取数据的问题,但是如果定义的数据量过大,这么一个一个书写肯定会累死人的,SpringBoot提供了一个对象,能够把所有的数据都封装到这一个对象中,这个对象叫做Environment,使用自动装配注解可以将所有的yaml数据封装到这个对象中
在这里插入图片描述
数据封装到了Environment对象中,获取属性时,通过Environment的接口操作进行,具体方法是getProperties(String),参数填写属性名即可.

3.读取对象数据
​ 单一数据读取书写比较繁琐,全数据读取封装的太厉害了,每次拿数据还要一个一个的getProperties(),总之用起来都不是很舒服。由于Java是一个面向对象的语言,很多情况下,我们会将一组数据封装成一个对象。SpringBoot也提供了可以将一组yaml对象数据封装一个Java对象的操作

​ 首先定义一个对象,并将该对象纳入Spring管控的范围,也就是定义成一个bean,然后使用注解@ConfigurationProperties指定该对象加载哪一组yaml中配置的信息。
在这里插入图片描述

注意:

  1. 使用@ConfigurationProperties注解绑定配置信息到封装类中
  2. 封装类需要定义为Spring管理的bean,否则无法进行属性注入

多环境配置

我们开发的项目并不是一定就在一个环境中运行,例如有开发环境(dev), 测试环境(test), 生产环境(prod)。这些环境是都需要配置的。

单一文件配置多环境 :在一个配置文件中配置所有的环境,这种方式不推荐
(只能在yml配置文件有效, properties配置文件无效) 了解

多文件配置多环境: 有多个配置文件来对应相应的环境,(properties支持, yml支持)

1.每个环境有对应的配置文件:

​ application-环境名.properties

每一个环境配置文件中不需要使用spring.profiles 指定名字, 文件名可以区分
在这里插入图片描述

2.在主配置文件中: application.properties文件,激活那个环境

spring.profiles.active=dev

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

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

相关文章

JAVA语言程序设计基础入门技术教程

JAVA语言程序设计基础 第一章:JAVA入门基础–开山篇 视频:https://edu.csdn.net/course/detail/8034 前言:什么是java 是咖啡飘香的清晨是斯坦福校园意浓情深是James的思想睿智是剁手党双十一挥舞的利刃是大数据服务的平台是春运时节那期…

Java高手速成│实战:应用数据库和GUI开发产品销售管理软件(1)

实战项目:应用数据库和GUI开发产品销售管理软件 01、项目分析 应用各种数据库编程技术,并利用GUI组件,例如按钮、标签、文本字段提供增添、更新、删除产品销售记录等功能。利用JTable显示产品销售数据表中的记录。图1显示了这个实战项目的典…

【目标检测】FPN网络全解

目录:FPN网络详解一、引言二、论文概述2.1 图像金字塔2.2 为什么需要构造特征金字塔三、论文详解四、FPN框架解析五、为什么FPN能够很好的处理小目标?六、FPN总结一、引言 这篇论文是CVPR2017年的文章,采用特征金字塔做目标检测,…

让程序“说话”pyttsx3模块

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 让程序“说话” pyttsx3模块 选择题 关于下列代码说法错误的是? import pyttsx3 enginepyttsx3.init() engine.setProperty(rate,180) engine.say(我喜欢学习python数据分析&#x…

统信软件根社区斩获CSDN两项大奖

在CSDN 2022中国开发者影响力盛典中,统信软件根社区凭借多年的深耕与投入以及社区影响力,荣获CSDN 2022年度开发者社区;旗下社区发行版deepin荣获CSDN 2022年度开源影响力项目。 CSDN颁奖现场 “CSDN 2022 中国开发者影响力年度评选”自 20…

温故知新:从计算机体系结构看操作系统

知识诅咒(Curse of Knowledge),是指我们掌握了某知识,就很难体会没有它的感觉,不理解获得知识以前的状态及还未获得该知识的人,从而产生沟通障碍。计算机体系结构正在消亡 (Architecture is dying)&#xf…

一篇用 AI 生成的跨年感怀

一言难尽的2022终于过去了虽然跨年,只是我们的星球围绕我们的恒星环行一周的时间标记,并不真的代表什么。但我们就是希望多事而沉重的一年能快点滚蛋,新的生活能开门重启。我用 Midjourney 生成了很多跨年场景的图。prompt 很简单&#xff0c…

2003-2021年飞机航线数据

1、时间为:2003-2021年 2、指标包括: 起点城市、起点城市所属地级市、起点城市所属省份、起点机场、终点城市、终点城市所属地级市、终点城市所属省份、终点机场、 航空公司、航班、机型、出发时间、到达时间、准点率、班次_周一、班次_周二、班次_周…

RabbitMQ路由模式

🍁博客主页:👉不会压弯的小飞侠 ✨欢迎关注:👉点赞👍收藏⭐留言✒ ✨系列专栏:👉Linux专栏 🔥欢迎大佬指正,一起学习!一起加油! 目录&…

每个程序员都需要掌握的 7 项基本技能

每个 Coder 需要掌握的 7 项基本技能是:1. 编程语言:程序员可以学习多种编程语言,最重要的具体语言取决于他们想从事的工作类型。一些最常见的编程语言包括 Java、C、Python 和 JavaScript。对于编码人员来说,精通至少一种编程语言…

51. N 皇后

51. N 皇后 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方…

剑指offer----C语言版----第七天

目录 1. 旋转数组中的最小数字 1.1 题目描述 1.2 思路一 1.3 思路二 1.4 小试牛刀 1. 旋转数组中的最小数字 原题链接: 剑指 Offer 11. 旋转数组的最小数字 - 力扣(LeetCode)https://leetcode.cn/problems/xuan-zhuan-shu-zu-de-zui-xiao-…

GCC学习笔记

(1)什么是GCC (2)用gcc编译文件 gcc test.c -o app 【编译test.c文件得到app可执行文件】 ./app 【运行可执行文件】 (3)编程语言的发展 (4)gcc工作流程 预处理 作用:…

剑指 Offer 26. 树的子结构

题目 输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构) B是A的子结构, 即 A中有出现和B相同的结构和节点值。 例如: 给定的树 A: 给定的树 B: 返回 true,因为 B 与 A 的一个子树拥有相同的结构和节…

JavaScript中如何将十进制转换为十六进制?

​ 在本文中,我们将学习如何在 JavaScript 中轻松地将十进制数转换为其等效的十六进制数。 我们将研究一些需要执行此操作的真实场景。 数字toString() 方法 要在 JavaScript 中将十进制转换为十六进制,请对十进制调用 toString() 方法,将 1…

JUC并发编程学习笔记(四)callable接口与辅助类

6 Callable&Future 接口 6.1 Callable 接口 创建线程的多种方式: 继承Thread类实现Runnable接口Callable接口线程池 ​ 目前我们学习了有两种创建线程的方法一种是通过创建 Thread 类,另一种是通过使用 Runnable 创建线程。但是,Runn…

某电视 频道headers参数x-itouchtv-ca-signature逆向

本文仅供参考学习,如有侵权可联系本人 某电视(荔枝平台)平台逆向 目标链接 aHR0cHM6Ly93d3cuZ2R0di5jbi9jaGFubmVsRGV0YWlsLzI0Ng接口链接: aHR0cHM6Ly9nZHR2LWFwaS5nZHR2LmNuL2FwaS9jaGFubmVsL3YxL25ld3M/cGFnZVNpemU9NDAmY2hhbm5lbElkPTI0NiZjdXJy…

纯注解驱动SSM整合

纯注解驱动SSM整合 Jdbc.java package com.itheima.confing;import com.alibaba.druid.pool.DruidDataSource; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean;import javax.sql.DataSource;public class J…

思购趣拼秒杀模式的逻辑与模式特点

读:小镇上来了一个陌生的年轻人,年轻人交了一百块定金给旅馆的老板去楼上挑房间,旅馆老板拿着这一百块钱还给了卖猪肉的,卖猪肉的把钱还给了卖饲料的,卖饲料的把钱还了厂商,厂商拿着钱还给了按摩店的小姐&a…

一文说清MySQL索引数据结构

前言 接上篇说到,小A匆匆忙忙的赶回宿舍,因为晚上他要给女神整理讲解MySQL中索引数据结构资料。一边整理一边忍住不笑了起来,等小美看到这篇文章不得爱上自己。当上小美男朋友,从此踏上人生巅峰不是梦(该考虑一下孩子…