JavaSprintBoot中一些运维方面的知识

1.配置文件四级分类

例如以下yml配置文件,权限一共有四级,高等级覆盖低等级并叠加(权限向下兼容)

2.自定义配置文件

可以自定义配置文件的名称,因为实际开发环境中可能不会就简单的叫做application.yml之类的,而自定义配置文件怎么生效呢?可以通过项目配置,设置program arguments来指定开发人员所编辑的自定义配置文件。

通过--spring.config.location=classpath:/ebank.yml路径匹配来匹配配置文件

通过--spring.config.name=ebank文件名匹配来匹配配置文件(可以不需要文件名后缀)

值得注意的是,这两种配置方式都是右边的配置文件优先生效

3.多环境开发

yml版

最顶上的【启动指定环境】区域是写公共的配置,各环境之间使用---来划分

但是这样稍显臃肿,而且有的配置可能会暴露敏感信息,所以推荐以下方法,将不同环境的配置文件单独写入一个yml文件中,通过一个修改application.yml中的内容来灵活调用不同环境,注意红框内的信息,要对应application-后面的名字

properties版

和yml差别不大

多环境分组管理

active中输入的是dev,则会按dev->devDB->devMVC顺序来加载,最终devMVC会覆盖前面俩的配置,如果输入pro也是同理.

4.日志基础操作

通过以下语句开启日志,需要导入slf4j的包,其中BookController.class是该类的类名,

private static final Logger log = LoggerFactory.getLogger(BookController.class);

debug、info、warn、error是日志等级,每次都取包括该等级以及更高的进行输出。

除了在类中定义,还可以在配置文件中设置

上图表示,对com.itheima.controllercom.itheima.service以及com.itheima.dao包设置成一个组,放到名为ebank的组中,再将ebank组的日志等级设置为warn以上级别。还可以单独对某个包进行设置,比如说com.itheima.controller就被设置为debug(忘记注释掉了)

使用lombok来快速加入日志

引入坐标

<dependency>

        <group>org.projectlombok</group>

        <artifactId>lombok</artifactId>

</dependency>

之后只需要在类中挂上注解@slf4j即可,而不用在输入private static final Logger log = LoggerFactory.getLogger(BookController.class);

文件记录日志

将控制台中的日志信息保存到记事本中,当控制台的日志信息满足一定的量或者是服务器关闭时就会写入到记事本中,当然现实业务中一般不会轻易关停服务器。

红框中最上边的name指的是日志文件的命名,如果想要滚动记录日志信息,毕竟一个记事本记录太多信息是不合理的,于是可以通过滚动记录,max-file-size: 4KB表示该文件在内存占用大小到达4KB时换新的记事本来记录,file-name-pattern则表示每个日志文件命名的规则其中%d表示日期,后方大括号内的可以省略,当然加上则表示自定义日期格式,%i表示自然数增加,比如说一天内2024-01-01当天日志量爆炸,一个记录不完,则可以加上这个可以输出名为server.2024-01-01.00.logserver.2024-01-01.01.logserver.2024-01-01.02.log....以此类推

以上就是一部分关于SpringBoot运维方面的知识,该博客用于笔记记录,学习源来自b站黑马程序员的课程。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

48 slab 的实现

前言 这里说的是 内核中分配小对象的一种内存分配方式 slab 呵呵 经典程度不必多说了, 内核使用的大多数数据结构 基本上是基于 slab 进行内存分配的 这里 我们来看一下 slab 如何分配对象 几个分配层级, c->free_list, c->page, c->partial, new_slab 1. 先…

C#上位机与三菱PLC的通信08---开发自己的通讯库(A-1E版)

1、A-1E报文回顾 具体细节请看&#xff1a; C#上位机与三菱PLC的通信03--MC协议之A-1E报文解析 C#上位机与三菱PLC的通信04--MC协议之A-1E报文测试 2、为何要开发自己的通讯库 前面使用了第3方的通讯库实现了与三菱PLC的通讯&#xff0c;实现了数据的读写&#xff0c;对于通…

Maven私服搭建Nexus3

第一部分&#xff1a;仓库部署 下载地址&#xff1a;https://help.sonatype.com/en/download.html 备用下载链接&#xff0c;部分已经失效了 解压后会有两个文件夹&#xff1a; nexus-3.20.1-01 sonatype-work 访问地址配置路径 \nexus-3.20.1-01\bin\nexus.vmoptions -Xms1…

Vue思维导图,复习+预习,其中有些已经弃用了,下期总结下

1、学前了解 2、基础知识 3、组件相关语法 4、高级语法 5、compositionAPI 6、配套工具

每日OJ题_二叉树dfs④_力扣98. 验证二叉搜索树

目录 力扣98. 验证二叉搜索树 解析代码 力扣98. 验证二叉搜索树 98. 验证二叉搜索树 难度 中等 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的左子树只包含 小于 当前节点的数。节点的右子树…

C++动态分配内存知识点!

个人主页&#xff1a;PingdiGuo_guo 收录专栏&#xff1a;C干货专栏 大家好呀&#xff0c;又是分享干货的时间&#xff0c;今天我们来学习一下动态分配内存。 文章目录 1.动态分配内存的思想 2.动态分配内存的概念 2.1内存分配函数 2.2动态内存的申请和释放 2.3内存碎片问…

Android 面试问题 2024 版(其二)

Android 面试问题 2024 版&#xff08;其二&#xff09; 六、多线程和并发七、性能优化八、测试九、安全十、Material设计和 **UX/UI** 六、多线程和并发 Android 中的进程和线程有什么区别&#xff1f; 答&#xff1a;进程是在自己的内存空间中运行的应用程序的单独实例&…

使用JavaVisualVM排查FullGC问题

1.工具准备 在这里使用 jdk/bin 目录下的 jvisualvm.exe&#xff0c;是自带工具。 2.工具使用 将下载到本地的dump 文件导入工具中&#xff0c;会展示各个类的实例数占比&#xff0c;大小占比。 3.问题排查 前期准备 在分析dump文件之前&#xff0c;我们可以先观察应用中接…

06 flink 的各个角色的交互

前言 这里主要是 涉及到 flink 中各个角色的交互 TaskManager 和 ResourceManager 的交互 JobMaster 和 ResourceManager 的交互 等等流程 TaskManager 和 ResourceManager 的交互 主要是 包含了几个部分, 如下, 几个菜单 TaskManager向 ResourceManager 注册 Resou…

【Maven】介绍、下载及安装、集成IDEA

目录 一、什么是Maven Maven的作用 Maven模型 Maven仓库 二、下载及安装 三、IDEA集成Maven 1、POM配置详解 2、配置Maven环境 局部配置 全局设置 四、创建Maven项目 五、Maven坐标详解 六、导入Maven项目 方式1&#xff1a;使用Maven面板&#xff0c;快速导入项目 …

安装 Debian

安装 Debian 制作一个 Debian 的可启动 USB先决条件如何在 Linux 操作系统上制作 Debian 11 的可启动 USB第一步&#xff1a;附加 ISO 镜像第二步&#xff1a;选择 USB第三步&#xff1a;开始制作 USB 可启动的过程 如何在 Windows 上制作一个 Debian 11 可启动的 USB 盘第一步…

一周学会Django5 Python Web开发-Django5设置视图响应状态

锋哥原创的Python Web开发 Django5视频教程&#xff1a; 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计25条视频&#xff0c;包括&#xff1a;2024版 Django5 Python we…

压缩感知(Compressed Sensing)的MATLAB仿真实现

在前一篇文章&#xff1a;正交匹配追踪&#xff08;Orthogonal Matching Pursuit, OMP&#xff09;的MATLAB实现中&#xff0c;我们介绍了针对稀疏信号进行压缩感知的MATLAB仿真。 本篇我们介绍一下针对的是原始的非稀疏信号&#xff0c;看看如何进行处理。 本文中&#xff0c;…

定制学习风格、满足多元需求:Mr. Ranedeer 帮你打造 AI 家教 | 开源日报 No.178

JushBJJ/Mr.-Ranedeer-AI-Tutor Stars: 20.4k License: NOASSERTION Mr. Ranedeer 是一个个性化的 AI 辅导项目&#xff0c;主要功能包括使用 GPT-4 生成定制化提示&#xff0c;为用户提供个性化学习体验。其核心优势和特点包括&#xff1a; 调整知识深度以满足学习需求定制学…

原生 复选框 input[type=“checkbox“] 样式修改

样式&#xff1a; input[type"checkbox"] {position: relative;width: 25px;height: 25px;/* 用于控制 UI 控件的基于操作系统主题的原生外观。none 隐藏部件的某些特性 */appearance: none; }input[type"checkbox"]::before {content: "";posi…

采用uniapp实现的银行卡卡片, 支持H5和微信小程序

采用uniapp-vue3实现的银行卡卡片 支持H5、微信小程序&#xff08;其他小程序未测试过&#xff0c;可自行尝试&#xff09; 可用于参考学习 可到插件市场下载尝试&#xff1a; https://ext.dcloud.net.cn/plugin?id16736 使用示例

ansible的剧本

1 playbook 剧本 1.1 playbooks的组成 Tasks 任务&#xff0c;即通过 task 调用 ansible 的模板将多个操作组织在一个 playbook 中运行 Variables 变量 Templates 模板 Handlers 处理器&#xff0c;当changed状态条件满足时&#xff0c;&#xff08;notify&#xff09…

“TypeError: utils request jS WEBPACK IMPORTED MODULE O .default is undefined‘报错

写项目时报下列错误&#xff0c;找了半天&#xff0c;结果才发现自己在request.js中少写了一行代码 一定不要少些代码 export default requestrequest.js完整代码 import axios from axios;//创建一个新的axios对象 const request axios.create({baseURL:http://localhost:…

AIDL的工作原理与使用示例 跨进程通信 远程方法调用RPC

AIDL的介绍与使用 AIDL&#xff08;Android Interface Definition Language&#xff09;是Android中用于定义客户端和服务端之间通信接口的一种接口定义语言。它允许你定义客户端和服务的通信协议&#xff0c;用于在不同的进程间或同一进程的不同组件间进行数据传递。AIDL通过…

SpringCloud Ribbon负载均衡的策略总结及其配置

1. 轮询策略 2. 权重轮询策略 3. 随机策略 4. 最少并发数策略 5. 在选定的负载均衡策略基础上重试机制 6. 可用性敏感策略。 7. 区域敏感策略 —————————————————————— Ribbon负载均衡策略的配置&#xff1a; 在application.yml中配置如下&am…