Springboot初识(二)

文章目录

  • 前言
  • 一.Spring配置文件
    • 1.1 配置文件的作用
    • 1.2 配置文件的类型
  • 二.properties配置⽂件说明
    • 2.1 基本语法
    • 2.2 读取配置文件
  • 三.yml 配置⽂件说明
    • 2.1 基本语法
    • 2.2 读取配置文件
    • 2.3 注意事项

前言

上篇文章我们介绍了什么是SpringBoot和怎么去创建一个SpringBoot项目,现在我们具体创建之后,我们要进一步去介绍SpringBoot,就要深入了解一下SpringBoot的配置文件了,Spring Boot配置文件的重要性是因为配置文件在Spring Boot应用程序中扮演着关键的角色,它是配置应用程序行为的核心组成部分。

一.Spring配置文件

1.1 配置文件的作用

整个项目中所有重要的数据都是在配置文件中配置的,比如:·数据库的连接信息(包含用户名和密码的设置);

  • 项目的启动端口;
  • 第三方系统的调用秘钥等信息;
  • 用于发现和定位问题的普通日志和异常日志等。

从这里可以看出,配置文件在SpringBoot当中是十分重要的.

1.2 配置文件的类型

在Spring Boot中,可以使用两种类型的配置文件:.properties和.yml(YAML)。这两种类型的配置文件都可以用于配置应用程序的属性和行为,但它们有一些语法和格式上的差异。

在Spring Boot中,可以使用两种类型的配置文件:.properties和.yml(YAML)。这两种类型的配置文件都可以用于配置应用程序的属性和行为,但它们有一些语法和格式上的差异。

  1. properties配置文件: 这是一种常见的配置文件格式,使用键值对的方式表示属性和属性值。每一行表示一个配置项,用等号(=)将键和值分隔。例如:
# application.propertiesserver.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=myuser
spring.datasource.password=mypassword
  1. yml配置文件: 这是一种基于缩进格式的配置文件,使用层级结构来表示属性和属性值。.yml文件更加易读和直观,适合复杂的配置场景。例如:
# application.ymlserver:port: 8080spring:datasource:url: jdbc:mysql://localhost:3306/mydbusername: myuserpassword: mypassword

这里做出两点特殊总结:
1.理论上讲properties可以和 yml一起存在于一个项目当中,当properties和yml一起存在一个项目中时,如果配置文件中出现了同样的配置,比如 properties和 yml中都配置了“server.port"那么这个时候会以 properties中的配置为主,也就是.properties配置文件的优先级最高,但加载完.properties文件之后,也会加载.yml 文件的配置信息。
2.虽然理论上来讲.properties可以和.yml共存,但实际的业务当中,我们通常会采取一种统一的配置文件格式,这样可以更好的维护(降低故障率)。这就好像连锁店的服饰一样,不管是老款的服装还是新款的服装,一定要统一了才好看。

二.properties配置⽂件说明

Properties文件是一种常见的配置文件格式,它使用键值对的方式来表示配置属性和属性值。在Spring Boot中,.properties配置文件用于配置应用程序的属性和行为。

2.1 基本语法

properties 是以键值的形式配置的,key 和 value 之间是以“=”连接的,如:

server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=myuser
spring.datasource.password=mypassword

2.2 读取配置文件

如果在项⽬中,想要主动的读取配置⽂件中的内容,可以使⽤ @Value 注解来实现。
@Value 注解使⽤“${}”的格式读取,如下代码所示:

@Controller
@ResponseBody //加在类上,表示当前页面中所有方法返回的都是非静态页面的数据
public class TestController {@Value("${server.port}")private  int port;//项目启动之后,就会把这个东西装进spring@RequestMapping("/sayhi") //=WebServlet(/url) localhost:8080/test/sayhipublic String sayHi(){return "Hello World ->"+port;}
}

在这里插入图片描述

三.yml 配置⽂件说明

yml是一个可读性高,写法简单、易于理解,它的语法和JSON语言类似。
yml支持更多的数据类型,它可以简单表达清单(数组)、散列表,标量等数据形态。它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件等。
yml支持更多的编程语言,它不止是 Java中可以使用在Golang、PHP、Python、Ruby.JavaScript、Perl中。

2.1 基本语法

yml是树形结构的配置文件,它的基础语法是“key: value”,注意key和 value 之间使用英文冒汗加空格的方式组成的,其中的空格不可省略。例如语法如下:

# application.propertiesserver.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=myuser
spring.datasource.password=mypassword

2.2 读取配置文件

读取.yml配置文件与读取.properties配置文件类似,可以使用@ConfigurationProperties注解或@Value注解来将配置属性注入到应用程序中。具体例子如下:
代码如下:

@Controller
@ResponseBody //加在类上,表示当前页面中所有方法返回的都是非静态页面的数据
public class TestController {@Value("${server.port}")private  int port;//项目启动之后,就会把这个东西装进spring@RequestMapping("/sayhi") //=WebServlet(/url) localhost:8080/test/sayhipublic String sayHi(){return "Hello World ->"+port;}
}

在这里插入图片描述

2.3 注意事项

  • 读取的问题
    接下来会使用一个例子,来说明:
    具体代码如下:
@Controller
public class TestController {@Value("${string.str1}")private String str1;@Value("${string.str2}")private String str2;@Value("${string.str3}")private String str3;@PostConstructpublic void postConstruct(){System.out. println ( "string.str1: " +str1);System.out. println( "string.str2: " + str2);System.out. println("string.str3:" +str3);}}

在这里插入图片描述
从上述结果可以看出:
字符串默认不用加上单引号或者双引号。
单引号会转义特殊字符,特殊字符最终只是一个普通的字符串数据。
双引号不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思。

  • 可配置对象
    我们还可以在yml中配置对象,如下配置︰
student:id: 1name: zhangsanage : 18

代码如下:

@ConfigurationProperties("student")
@Component
@Setter
@Getter
@ToString
public class Student {private int id;private String name;private int age;
}
@Controller
public class StudentController {@Autowiredprivate Student student;@PostConstructpublic void doPostConstruct(){System.out.println(student);}}

在这里插入图片描述

  • 其他更多的配置方法
    Spring Boot读取配置文件的N种方法
    https://juejin.cn/post/7132641888166739982
    更多系统配置项
    https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html

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

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

相关文章

Navicat连接服务器上Docker安装的mysql提示拒绝连接

一、报错的原因 英语翻译 --- ‘不允许主机连接到此MySQL服务器’ (意思是本地账号连接可以登录,但是远程登陆不行) 二、解决方法 ①进入docker中的mysql容器 docker exec -it mysql bash ②登陆mysql mysql -uroot -p ③执行以下步骤…

13.5.3 【Linux】PAM 模块设置语法

PAM 借由一个与程序相同文件名的配置文件来进行一连串的认证分析需求。我们同样以passwd 这个指令的调用 PAM 来说明好了。 当你执行 passwd 后,这支程序调用 PAM 的流程是: 1. 使用者开始执行 /usr/bin/passwd 这支程序,并输入密码&#xf…

Mongodb 多文档聚合操作处理方法(Map-reduce 函数)

聚合 聚合操作处理多个文档并返回计算结果。您可以使用聚合操作来: 将多个文档中的值分组在一起。 对分组数据执行操作以返回单个结果。 分析数据随时间的变化。 要执行聚合操作,您可以使用: 聚合管道 单一目的聚合方法 Map-reduce 函…

基于Java+SpringBoot+vue前后端分离在线商城系统设计实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

spring 存储对象 + 获取对象

前言 本篇在spring中如何使用五大类注释与方法注释将对象加入IOC容器中,了解如何使用注释来获取容器中的Bean对象,如有错误,请在评论区指正,让我们一起交流,共同进步! 文章目录 前言1.通过注释将类加入IoC…

【云计算小知识】云环境是什么意思?有什么优点?

随着云计算的快速发展,了解云计算相关知识也是运维人员必备的。那你知道云环境是什么意思?有什么优点?云环境安全威胁有哪些?如何保证云环境的运维安全?这里我们就来简单聊聊。 云环境是什么意思? 云环境是…

SpringBoot中配置文件的加载

springboot 启动会扫描一下位置的application.properties或者application.yml文件作为springboot的默认配置文件 file:./config/(项目根目录config文件夹下的配置文件) file:./(项目根目录下的配置文件) classpath:/config/(resources目录config文件下的配置文件) classpat…

如何在3ds max中创建可用于真人场景的巨型机器人:第 2 部分

推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 创建主体 步骤 1 打开 3ds Max。选择机器人头部后,二次单击鼠标并选择隐藏未选中。机器人的其他部分 除了头部之外,将被隐藏。 打开 3ds Max 步骤 2 在人脸选择模式下&#x…

视图和视图解析器

SpringMVC–视图和视图解析器 基本介绍 在springMVC 中的目标方法最终返回都是一个视图(有各种视图)。 返回的视图都会由一个视图解析器来处理(视图解析器有很多种)。 自定义视图 为什么需要自定义视图 ​ 在默认情况下,我们都是返回默认的视图, 然后这个返回…

Java通过InputStream判断word格式

Java通过InputStream判断word格式 1. 传入inputStream文件流2. 读取文件流前八个字节到字节流数组中3. 转为字符串4. 对比字符串判断文件类型5. 完整代码 Java通过InputStream判断word格式) 1. 传入inputStream文件流 2. 读取文件流前八个字节到字节流数组中 byte[] byteArra…

flink1.16使用消费/生产kafka之DataStream

flink高级版本后&#xff0c;消费kafka数据一种是Datastream 一种之tableApi。 上官网 Kafka | Apache Flink Kafka Source 引入依赖 flink和kafka的连接器&#xff0c;里面内置了kafka-client <dependency><groupId>org.apache.flink</groupId><arti…

C++类与对象 - 2(构造函数和析构函数)(超详细)

构造函数和析构函数 - 超详细讲解 1. 构造函数1.1 概念1.2特性 2. 析构函数2.1 概念2.2特性 1. 构造函数 1.1 概念 对于以下Date类&#xff1a; class Date { public:void Init(int year, int month, int day){_year year;_month month;_day day;}void Print(){cout <&l…

C语言float类型学习

C语言的小数类型有两种&#xff0c;float和double&#xff1b; float 称为单精度浮点型&#xff0c;double 称为双精度浮点型&#xff1b; float 占用4个字节&#xff0c;double 占用8个字节&#xff1b; 下面看一下float&#xff1b; #include <stdio.h>int main() {…

电脑记事本在哪里?电脑桌面显示记事本要怎么设置?

绝大多数上班族在使用电脑办公时&#xff0c;都需要随手记录一些琐碎或重要的事情&#xff0c;例如工作注意事项、常用的文案、某项工作的具体要求、多个平台的账号和密码等。于是就有不少小伙伴想要使用电脑记事本软件来记录&#xff0c;那么电脑记事本在哪里呢&#xff1f;想…

JAVA基础-集合的工具类Collections

目录 引言 一&#xff0c;Collections工具类的操作方法方法 1&#xff0c;排序操作 2&#xff0c;替换 和 查找操作 二&#xff0c;Collections工具类的使用 2.1&#xff0c;排序操作 2.1.1&#xff0c;集合的逆序 2.1.2&#xff0c;集合的随机排序 2.1.3&#xff0c;集…

SkyWalking链路追踪中Trace概念以及Trace与span的关系

基本概念 在SkyWalking链路追踪中&#xff0c;Trace&#xff08;追踪&#xff09;是指一个请求或者一个操作从开始到结束的完整路径。它涵盖了分布式系统中所有相关组件的调用关系和性能信息。 具体来说&#xff0c;Trace包含了一系列的span&#xff08;跨度&#xff09;&…

【C#】.Net Framework框架使用JWT

2023年&#xff0c;第31周&#xff0c;第2篇文章。给自己一个目标&#xff0c;然后坚持总会有收货&#xff0c;不信你试试&#xff01; 本篇文章主要简单讲讲&#xff0c;.Net Framework框架下使用JWT的代码例子&#xff0c;以及他们的基本概念。 2002年微软发布了.net framewo…

GFLv2 论文学习

1. 解决了什么问题&#xff1f; 预测定位质量对于目标检测很重要&#xff0c;在 NMS 时它能提供准确的得分排序&#xff0c;提高模型的表现。现有方法都是通过分类或回归的卷积特征来预测定位质量得分。 2. 提出了什么方法&#xff1f; 受到 GFLv1 的 general distribution …

前端开发实习总结参考范文(合集)

▼前端开发实习总结篇一 今天就简单聊聊上面的StrutsSpringHibernate吧。 Struts 代表&#xff1a;表示层;Spring代表&#xff1a;业务逻辑层;Hibernate则代表持久层。他们是目前在Java Web编程开发中用得最多的框架&#xff0c;其实这样区分是为了适应软件开发过程中各个分工…

Shell输出帮助手册

代码&#xff1a; 帮助手册雏形 function help(){echo -e "Help manual":echo -e " -h. -- help View the help manual"echo -e " install Installation"echo -e " uninstall Uninstall" }case "$1&qu…