SpringBoot 框架学习
java 学习笔记指路
基础知识Python转java补充知识
Java中常见的名词解释前端
【黑马程序员pink老师前端】HTML
【黑马程序员pink老师前端】JavaScript基础大总结
【黑马程序员pink老师前端】JavaScript函数与作用域
【黑马程序员pink老师前端】JavaScript对象数据库
【黑马程序员数据库】数据库基础大总结
【黑马程序员数据库】数据库引擎
【黑马程序员数据库】数据库索引SQL编程
【牛客】SQL刷题篇入门篇
【牛客】SQL刷题篇进阶篇Java 框架
spring框架学习
SpringMvc框架学习
SpringBoot 框架学习
Mybatis-plus 快速入门
Maven基础
Zookeeper初认识
HTTP简介
Tomcat
Servlet
vue入门
目录
- 0. 名词解释
- 1. 配置文件
- 1.1 springboot 支持的配置文件
- 执行顺序
- 1.2 application.properties和application.yml文件的区别:
- 1.3 yml 语法:
- 1.4 配置文件注入
- 2. 日志系统
- 3. 属性配置
- 4. Swagger
- 4.1 作用
- 4.2 使用
参考大佬文章
0. 名词解释
属性:
属性是指一个对象或组件中的某些特征或状态。在Spring Boot中,属性通常用于配置应用程序中的各种组件和服务。属性可以通过配置文件、命令行参数、Java代码等方式进行设置,从而使应用程序能够根据不同的环境和需求进行配置。
使用配置文件来配置属性的情况:
- 需要在不同的环境中使用不同的配置时。例如,您可以在开发环境中使用一组属性,在测试环境中使用另一组属性,在生产环境中使用另一组属性。
- 需要将配置信息从代码中分离出来时。使用配置文件可以使配置信息更加灵活和可维护,因为您可以在配置文件中更改配置信息,而不需要修改代码。
组件: 是指应用程序中的一个独立的可重用的功能单元。组件可以是一个Java类、一个接口、一个注解等,它们通常用于实现特定的功能,例如处理请求、处理数据、执行业务逻辑等。
依赖关系: 依赖关系是指一个组件或模块依赖于另一个组件或模块的关系
依赖注入: spring 提供的,@Autowired 注解来注入,会自动装载import,同 python 中的 import
1. 配置文件
1.1 springboot 支持的配置文件
- application.yml或application.yaml:这是Spring Boot的默认配置文件格式,它使用YAML语法来表示配置信息。与application.properties文件类似,可以在该文件中配置各种属性。application.properties或application.yml文件中的属性可以通过**@Value**注解直接注入到Java类中(把配置文件中的值赋给变量),这样可以方便地将配置信息传递给应用程序的各个组件。
- application-dev.properties或application-dev.yml:用于配置Spring Boot应用程序的开发环境属性。例如,可以在这些文件中配置日志级别、端口号等。
- application-test.properties 或 application-test.yml:用于配置Spring Boot应用程序的测试环境属性。例如,您可以在这些文件中配置测试数据库连接等。
- spring.factories :用于配置 Spring Boot 应用程序中的组件和依赖关系。Spring Boot 会自动扫描该文件,并将其中的组件和依赖项注入到应用程序中。例如,如果需要在应用程序中添加一个新的组件或依赖项,您只需要在spring.factories文件中添加一行新的键值对即可。这样,Spring Boot会自动扫描该文件,并将新的组件或依赖项注入到应用程序中,无需修改应用程序的源代码。通常用于配置Spring Boot应用程序中的第三方库和框架,例如Spring Data JPA、Spring Security等。这些库和框架通常需要在应用程序中进行配置,通常使用 spring.factories。
执行顺序
Spring Boot应用程序会按照以下顺序加载配置文件:
- application.properties或application.yml文件:默认配置文件
- application-{profile}.properties、application-{profile}.yml 或 application-{profile}.yaml文件:{profile}表示您的应用程序所使用的特定环境,例如开发环境、测试环境、生产环境等。
- spring.factories文件:配置Spring Boot应用程序中的组件和依赖关系。对于在maven中引用的其他外部包加入容器的过程,需要用到spring.factories。
如果属性在多个配置文件中都存在,则使用最后一个配置文件中的属性值。
1.2 application.properties和application.yml文件的区别:
IDEA创建一个SpringBoot项目时会默认创建一个application.properties配置文件。有些朋友习惯把.properties文件改成.yml文件。
1. 内容格式比较:
.properties文件,通过.来连接,通过=来赋值,结构上,没有分层的感觉,但比较直接。
server.port=8081
spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource
spring.datasource.url=jdbc:mysql://aliyuncs.com:3306/database?useUnicode=true&zeroDateTimeBehavior=convertToNull&autoReconnect=true
spring.datasource.username=root
spring.datasource.password=******
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
.yml文件,通过:来分层,结构上,有比较明显的层次感,最后key赋值的:后需要留一个空格
server:port: 8082
spring:datasource:name: testurl: jdbc:mysql://127.0.0.1:3306/databaseusername: rootpassword: ******type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.jdbc.Driver
2. 执行顺序
配置文件的加载优先级 properties(最高)>yml>yaml(最低),如果工程中同时存在application.properties文件和 application.yml文件,yml文件会先加载,而后加载的properties文件会覆盖yml文件。
1.3 yml 语法:
## 基本格式
server:port: 8080
## 值的写法格式
user:name: zhangsanage: 20
## 或者采用行内写法
user: {name: zhangsan,age: 20}
## 数组写法
pets:- cat- dog- pig
## 或者采用行内写法
pets: [cat,dog,pig]
k: v 表示键值对关系,冒号后面必须有一个空格
使用空格的缩进表示层级关系,空格数目不重要,只要是左对齐的一列数据,都在同一个层级
大小写敏感
缩进时不允许使用Tab键,只允许使用空格
支持松散绑定。Java中对于驼峰命名法,可使用原名或-代替驼峰,如:lastName属性,在yml文件中使用lastName或last-name都可以正确映射
注意:" ":双引号,会转译字符串里的特殊字符:如 /n 会被转译成换行;’’:单引号,不会转译: 如 /n 输出就是 /n
1.4 配置文件注入
2. 日志系统
springboot项目的最佳实践就是采用 slf4j+logback
详细的写在日志整改文章里
3. 属性配置
4. Swagger
4.1 作用
按照它的规范去定义接口及接口相关的信息,自动生成接口文档
4.2 使用
相关文章:
SpringBoot 框架学习
java 学习笔记指路 基础知识 Python转java补充知识 Java中常见的名词解释 前端 【黑马程序员pink老师前端】HTML 【黑马程序员pink老师前端】JavaScript基础大总结 【黑马程序员pink老师前端】JavaScript函数与作用域 【黑马程序员pink老师前端】JavaScript对象 数据库 【黑马程…...
java - lua - redis 完成商品库存的删减
java调用lua脚本完成对商品库存的管理 主页链接 微风轻吟挽歌的主页 如若有帮助请帮忙点赞 //lua脚本 获取到内存不够的商品StringBuilder sb new StringBuilder();//定义一个数组存储可能缺少库存的值sb.append(" local table {} ");//获取值sb.append(" …...
dbeaver离线安装clickhouse连接驱动
Clickhouse 数据库连接工具——DBeaver 主要介绍了Clickhouse 数据库连接工具——DBeaver相关的知识,希望对你有一定的参考价值。 Clickhouse 数据库连接工具——DBeaver 1.下载 DBeaver 和 连接驱动 https://dbeaver.io/files/dbeaver-ce-latest-x86_64-setup.…...
2024腾讯校招后端面试真题汇总及其解答(二)
11.如果同时有5个任务在10分钟之后提交,或者更多,那么如果是一个个从队列中拿数据,那么前一个任务会影响后续任务执行时间,说一下解决思路 你的问题是一个典型的并发处理问题。如果你的系统是单线程的,那么的确,前一个任务的执行时间会影响后续任务的执行时间。但是,你…...
datagrip 相关数据连接信息无缝迁移
背景 因为公司换电脑了,接触的项目比较多,不同项目,不同环境的数据库连接有好几十个,如果在新电脑上挨个重新连接一遍劳心劳力,所以想看一下能不能直接将之前保存的连接信息直接迁移到新的电脑上面。 为此,…...
不就是G2O嘛
从零开始一起学习SLAM | 理解图优化,一步步带你看懂g2o代码 SLAM的后端一般分为两种处理方法,一种是以扩展卡尔曼滤波(EKF)为代表的滤波方法,一种是以图优化为代表的非线性优化方法。不过,目前SLAM研究的主…...
C#开发的OpenRA游戏之系统参数选项按钮
C#开发的OpenRA游戏之系统参数选项按钮 前面分析了信标按钮,从图上可以看到,靠右边的按钮,就是系统参数选项按钮: 这个按钮与前面三个按钮是不一样的,虽然它们在排列位置上是放在一起,但是处理的方法方式是不一样的,因为这个选项按钮,并不需要发命令给服务器,再返回来…...
苹果启动2024年SRDP计划:邀请安全专家使用定制iPhone寻找漏洞
苹果公司昨天(8月30日)正式宣布开始接受2024 年iPhone安全研究设备计划的申请,iOS 安全研究人员可以在 10 月底之前申请安全研究设备 SRD。 SRD设备是专门向安全研究人员提供的iPhone14Pro,该设备具有专为安全研究而设计的特殊硬…...
std::make_shared和new初始化智能指针的区别
先看代码: class Base {public:Base(int num):a(num) {std::cout << "Base() construct" << std::endl;}~Base() {std::cout << "Base() deconstruct" << std::endl;}int Get() {return a;}private:int a; };void tes…...
无涯教程-JavaScript - ERFC.PRECISE函数
描述 ERFC.PRECISE函数返回x和无穷大之间集成的互补ERF函数。 互补误差函数等于1-ERF(即1-误差函数),由等式给出- $$Erfc(x) \frac {2} {\sqrt {\pi}} \int_ {x} ^ {\infty} e ^ {-t ^ 2} dt $$ 语法 ERFC.PRECISE(x)争论 Argument描述Required/OptionalxThe lower bound…...
2023国赛数学建模C题思路分析 - 蔬菜类商品的自动定价与补货决策
# 1 赛题 在生鲜商超中,一般蔬菜类商品的保鲜期都比较短,且品相随销售时间的增加而变差, 大部分品种如当日未售出,隔日就无法再售。因此, 商超通常会根据各商品的历史销售和需 求情况每天进行补货。 由于商超销售的蔬菜…...
手写Spring:第1章-开篇介绍,手写Spring
文章目录 一、手写Spring二、Spring 生命周期 一、手写Spring 💡 目标:我们该对 Spring 学到什么程度?又该怎么学习呢? 手写简化版 Spring 框架,了解 Spring 核心原理,为后续再深入学习 Spring 打下基础。在…...
C语言中,字节对齐是一种重要的内存管理概念
C语言中,字节对齐是一种重要的内存管理概念 字节对齐的目的是为了提高内存访问的效率。因为CPU访问内存的最小单位是字节,所以如果数据结构的成员以正确的字节边界对齐,那么CPU就可以直接访问这些成员,而不需要进行额外的内存移动…...
网络丢包问题,敢不敢这样定位?
下午好,我的网工朋友。 所谓丢包,是指在网络数据的收发过程中,由于种种原因,数据包还没传输到应用程序中,就被丢弃了。 这些被丢弃包的数量,除以总的传输包数,也就是我们常说的丢包率。 丢包…...
【漏洞复现】H3C路由器信息泄露任意用户登录
漏洞描述 通过访问特地址得到密码可进行登录。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、荣誉和利益,未经授权请勿利用文章中…...
随机数算法,SQL
SELECT* FROMprizes_config WHEREweight > ( SELECT FLOOR( RAND() * MAX( weight )) FROM prizes_config ) order by weight asc-- LIMIT 1;记录 id 权重 1 5 2 10 3 50 4 100 找权重最大的那个值,调用rand()函数&#…...
什么是软件测试+软件测试的分类【软件测试】
软件测试 什么是软件? 软件 程序 数据 文档 软件测试的对象有哪些?程序 数据 文档 C/S与B/S架构 C/S:客户端服务器,这种就是我们一定要安装一个客户端才能够用的软件,就叫C/S。比如:微信、qq B/S&am…...
2023国赛C题解题思路:蔬菜类商品的自动定价与补货决策
本次将全程提供国赛C题完整解题思路及代码,同时共享一些国赛论文模板等资料,需要的小伙伴可以关注一下,持续更新!大家也可以关注B站视频:不知名数学家小P 实时更新 本次C题是一道较为简单的统计分析题目,建…...
MIT6.824 Spring2021 Lab 1: MapReduce
文章目录 0x00 准备0x01 MapReduce简介0x02 RPC0x03 调试0x04 代码coordinator.gorpc.goworker.go 0x00 准备 阅读MapReduce论文配置GO环境 因为之前没用过GO,所以 先在网上学了一下语法A Tour of Go 感觉Go的接口和方法的语法和C挺不一样, 并发编程也挺有意思 0x01 MapRed…...
JavaScript 日期 – 如何使用 DayJS 库在 JS 中处理日期和时间
当涉及到在 JavaScript 中处理日期和时间时,开发人员经常发现自己正在努力应对内置对象的复杂性Date。 虽然普通 JavaScript 提供了基本功能,但使用起来可能相当麻烦,尤其是在处理解析、格式化和操作日期时。 这就是像 DayJS 这样的外部库发挥作用的地方,它提供了大量的优…...
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
五子棋测试用例
一.项目背景 1.1 项目简介 传统棋类文化的推广 五子棋是一种古老的棋类游戏,有着深厚的文化底蕴。通过将五子棋制作成网页游戏,可以让更多的人了解和接触到这一传统棋类文化。无论是国内还是国外的玩家,都可以通过网页五子棋感受到东方棋类…...
人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型
在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重,适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解,并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...
CppCon 2015 学习:Time Programming Fundamentals
Civil Time 公历时间 特点: 共 6 个字段: Year(年)Month(月)Day(日)Hour(小时)Minute(分钟)Second(秒) 表示…...
