SpringBoot的配置和日志

1.配置文件的作用和意义

配置文件中配置整个项目中所有重要的数据,比如:
1.数据库的连接信息(包含用户名和密码的设置);
2.项目的启动端口;
3.第三方系统的调用秘钥等信息;
4.用于发现和定位问题的普通日志和异常日志等。

2.Spring Boot配置文件格式

两种方式:

1.properties

2.yml(yml)

特殊说明:

1.两个配置文件从功能上来讲是可以同时存在的,但是企业中通常会规定使用某一种格式的配置文件。

2.如果同一个配置出现在两种格式的配置文件中的话,那么以properties为主。

 2.1 properties 配合文件的格式

配置项分类:
1.系统配置项,比如server.port/spring.datasource.url... ->
2.用户自定义配置(非系统配置项) -》key用户自定义
key = vlaue

设置为9090端口号:

 读取任意配置文件的内容:

package com.example.demo.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@ResponseBody //加在类上,表示当前类中所有方法返回的都是非静态页面的数据
//@RequestMapping("/test") //=@WebServlet(")
public class TestController {

    @Value("${server.port}") //注意:一定要是${key}格式
    private String myconfig;

    @RequestMapping("/sayhi")
    //=@WebServlet(")
    public String sayHi(){
        return "hello world ->"+myconfig;
    }

读取配置文件:

 

proporties 优缺点分析
properties 优点:
1.系统默认的配置文件
2.properties 配置项的优先级比yml高
3.格式简单,不容易出错
缺点:写法比较冗余;

2.2 yml配置格式

yml 优点分析:
yml 是⼀个可读性⾼,写法简单、易于理解,它的语法和 JSON 语⾔类似。
yml ⽀持更多的数据类型,它可以简单表达清单(数组)、散列表,标量等数据形态。它使⽤空⽩ 符号缩进和⼤量依赖外观的特⾊,特别适合⽤来表达或编辑数据结构、各种配置⽂件等。
yml ⽀持更多的编程语⾔,它不⽌是 Java 中可以使⽤在 Golang、PHP、Python、RubyJavaScript、Perl 中。
yml 是树形结构的配置⽂件,它的基础语法是“key: value”,注意 key 和 value 之间使⽤英⽂冒汗加空 格的⽅式组成的,其中的空格不可省略。

格式: String: java

冒号后面有一个空格

yml连接数据库:

spring:
 datasource:
   url: jdbc:mysql://127.0.0.0:3306/dbname?characterEncoding=utf8
   username: root
   password: root

2.3 properties 和yml的区别

1.properties 是以 key=value 的形式配置的键值类型的配置⽂件,⽽ yml 使⽤的是类似 json 格式的树形配置⽅式进⾏配置的,yml 层级之间使⽤换⾏缩进的⽅式配置,key 和 value 之间使⽤“: ”英⽂冒号加空格的⽅式设置,并且空格不可省略。
2.properties 为早期并且默认的配置⽂件格式,但其配置存在⼀定的冗余数据,使⽤ yml 可以很好的解决数据冗余的问题。
3.yml 通⽤性更好,⽀持更多语⾔,如 Java、Go、Python 等,如果是云服务器开发,可以使⽤⼀份配置⽂件作为 Java 和 Go 的共同配置⽂件。
4.yml支持更多的数据类型。

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

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

相关文章

如何利用 GPT 开发智能应用?微软提出这九大原则

毫无疑问,GPT 的出现以日新月异的速度改写了软件开发的工作方式。 兴奋,也许也有点焦虑。作为开发人员,如何在 GPT 时代与人工智能协作?在「万物皆有副驾驶」的年代,如何划定分工边界,让 GPT 成为开发人员…

如何使用命令行添加配置码云仓库SSH秘钥-git仓库也一样

使用命令行添加配置码云仓库SSH秘钥 为什么要如何使用命令行添加配置码云仓库SSH秘钥?生成密钥你可以按如下命令来生成 sshkey:可以参考下图执行指令 添加密钥登录你的码云,鼠标移入头像,设置。点击 SSH公钥,打开配置页面&#x…

【LeetCode: 1143. 最长公共子序列 | 暴力递归=>记忆化搜索=>动态规划】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

如何在比特币系统内创造人工生命

信息来源:coingeek.com 自2015年以来,关于比特币能否进行复杂计算以及比特币是否“图灵完备”的争论一直在持续。不幸的是,现在存在着一种流传甚广的谬论,有人说比特币并非图灵完备的,它不能像以太坊区块链那样进行复杂…

第四章 使用Maven:IDEA环境

1、创建 Project2、开启自动导入 TIP 各个 IDEA 不同版本在具体操作方面存在一定差异,这里我们以 2019.3.3 版本为例进行演示。其它版本大家灵活变通即可。 第一节 创建父工程 创建 Project 开启自动导入 创建 Project 后,IDEA 会自动弹出下面提示…

ROS学习5:ROS常用组件

【Autolabor初级教程】ROS机器人入门 1. TF 坐标变换 背景 现有一移动式机器人底盘,在底盘上安装了一雷达,雷达相对于底盘的偏移量已知,现雷达检测到一障碍物信息,获取到坐标分别为(x,y,z),该坐标是以雷达为参考系的…

快速下载VScode并配置Python运行环境【详细教程】

快速下载VScode并配置Python运行环境【详细教程】 博主:命运之光 目录 快速下载VScode并配置Python运行环境【详细教程】前言下载vscode第一步vscode官网下载第二步点击下载![请添加图片描述](https://img-blog.csdnimg.cn/1d76c427314b4ddcbd350e0a7e5449d5.png)第…

数据湖Iceberg-存储结构(2)

文章目录 存储结构数据文件 data files表快照 Snapshot清单列表 Manifest list清单文件 Manifest file 数据湖Iceberg-简介(1) 数据湖Iceberg-存储结构(2) 数据湖Iceberg-Hive集成Iceberg(3) 数据湖Iceberg-SparkSQL集成(4) 数据湖Iceberg-FlinkSQL集成(5) 数据湖Iceberg-Flink…

【移动端网页布局】流式布局案例 ① ( 视口标签设置 | CSS 样式文件设置 | 布局宽度设置 | 设置最大宽度 | 设置最小宽度 )

文章目录 一、视口标签设置二、CSS 样式文件设置三、布局宽度设置1、设置布局宽度2、设置布局最大宽度3、设置布局最小宽度4、查看网页最大最小宽度5、布局宽度设置 四、代码示例1、主界面标签2、CSS 布局设置 一、视口标签设置 参考 【移动端网页布局】移动端网页布局基础概念…

第三章 使用 Maven:命令行环境

第一节 实验一:根据坐标创建 Maven 工程 Maven 核心概念:坐标 ①数学中的坐标 使用 x、y、z 三个**『向量』作为空间的坐标系,可以在『空间』中唯一的定位到一个『点』**。 ②Maven中的坐标 [1]向量说明 使用三个**『向量』在『Maven的仓…

02_Lock锁

首先看一下JUC的重磅武器——锁(Lock) 相比同步锁,JUC包中的Lock锁的功能更加强大,它提供了各种各样的锁(公平锁,非公平锁,共享锁,独占锁……),所以使用起来…

day6 socket套接字及TCP的实现框架

socket套接字 Berkeley UNIX 操作系统定义了一种API它又称为套接字接口(socket interface); socket作用: socket常见API介绍 /*创建套接字*/ int socket(int domain, int type, int protocol); /*绑定通信结构体*/ int bind(int sockfd, const, struc…

界面控件DevExtreme使用指南 - 折叠组件快速入门(二)

DevExtreme拥有高性能的HTML5 / JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NET Core,jQuery,Knockout等)构建交互式的Web应用程序,该套件附带功能齐…

Spring Boot的日志文件

目录 日志的作用 日志的打印 常见的日志框架 自定义的日志打印 为什么不用sout来打印日志 Spring Boot日志打印 1.得到日志对象 2.使用日志对象提供的方法打印日志 日志级别 日志级别的顺序 日志级别的设置 日志持久化 配置日志文件的保存路径 配置日志文件的文件…

用扩展方法来实现EventTrigger中事件的异步等待

一、什么是扩展方法? 扩展方法是一种C#语言提供的功能,允许我们向现有类型添加新的方法,而无需修改类型的源代码。扩展方法的优缺点如下: 二、它有什么优点? 1、不需要修改源类型的代码:使用扩展方法可以…

Vue 手搓轮播效果

tiptop: 为啥需要写这个功能,因为我遇到了每个轮播层内要放3个左右的商品块,如果使用element自带的轮播就需要将一维数组切成二维数组,导致处理一些情况下就会变得很麻烦,当然那种我也写了如果你们有需要,在下方留言我…

使用chatGPT开发获取格点天气数据

1. 格点天气 1.1. 格点天气 以经纬度为基准的全球高精度、公里级、格点化天气预报产品,包括任意经纬度的实时天气和天气预报。其中,任意坐标的高精度天气,精确到3-5公里范围,包括:温度、湿度、大气压、天气状况、风力…

信息化发展

信息系统是:管理模型、信息处理模型和系统实现条件结合的 信息系统生命周期: 可行性分析与项目开发计划 需求分析 概要设计 详细设计 编码 测试 可以简化为: 系统规划:现行情况的分析,可行性研究报告 -> 设计任务…

Docker安装运行Nginx容器(纯步骤)

Docker安装Nginx容器并运行 本文章只有步骤,没有原理解释,只做平时学习提示。提前说明:由于nginx里的配置文件比较多,所以本文章不对此配置文件解释而且会有一些小问题,这个你酌情操作,但不影响你nginx容器…

数据库课设--基于Python+MySQL的餐厅点餐系统

文章目录 一、系统需求分析二、系统设计1. 功能结构设计2、概念设计2.2.1 bill_food表E-R图2.2.2 bills表E-R图2.2.3 categories E-R图2.2.4 discounts表 E-R图2.2.5 emp表E-R图2.2.6 food 表E-R图2.2.7 member表E-R图2.2.8 member_point_bill表E-R图2.2.9 servers表E-R图2.2.1…