【javaWeb 第十篇】(SpringBoot )yml配置文件

yml配置文件

  • 配置文件
    • 参数配置化
    • yml配置文件
    • yml配置文件的基本语法
      • yml数据格式
    • yml配置
    • ConfigurationProperties

配置文件

参数配置化

为什么要使用配置文件配置参数:
以阿里云OSS工具类为例,在工具类中,需要给出连接阿里云服务器的种种参数信息,如果开发企业级大型项目的时候,可能回多次使用到参数信息,这样参数就会很分散,这个时候我们可以通过将参数定义在配置文件当中。


在这里插入图片描述
而此时的工具类:
在这里插入图片描述
我们可以通过 @value注解常用于外部配置的属性注入,具体方法为: @value(“${配置文件中的key}”)
例如:

@value("${aliyun.oss.endpoint}")
private String endpoint;

yml配置文件

springBoot提供了多种属性配置方式

  • application.properties配置文件
    它的配置形式就是 key:value
    例如:
server.port=8080;
server.address=127.0.0.1
  • application.yml(后缀也可以是yaml)

yml文件进行配置的时候是根据层级进行配置的(先配置一级再向下延申)

server:
   port:8080
   address:127.0.0.1
  • XML配置文件
<server>
    <port>8080</port>
    <address>127.0.0.1</address>
</server>

yml配置文件的基本语法

  1. 大小写敏感
  2. 数值前边必须要有空格作为分隔符 例如: port: 8080
  3. 使用缩进表示层级关系,缩进时,不允许使用Tab键,只能用空格(idea中会自动将Tab转化为空格)
  4. 缩进的空格数目不重要,只要相同层级的元素左侧对齐就行
  5. #表示注释,从这个字符到行尾,都会被解析器忽略

yml数据格式

  • 定义对象/Map集合:
user:
  name:han
  age:18
  password:123456
  • 定义数组/List/Set集合:
hobby:
   - java
   - game
   - sport

yml配置

将properties中的配置内容都换成yml配置
示例:

spring.application.name=StudySystem
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatistest
spring.datasource.username=
spring.datasource.password=
# ??mybatis????????????
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
# ??mybatis???????????
mybatis.configuration.map-underscore-to-camel-case=true
# ????????????
spring.servlet.multipart.max-file-size=10MB
# ????????????????????????????
spring.servlet.multipart.max-request-size=100MB

转换成yml配置文件:

# 配置单个文件上传大小限制
# 配置单个文件请求最大大小限制(一次请求中是可以上传多个文件)

spring:
  application:
    name: StudySystem
  servlet:
    multipart:
      max-file-size: 10MB
      max-request-size: 100MB
  # 数据库连接信息
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatistest
    username: 
    password: 


# 配置日志信息输出到控制台
# 开启mybatis的驼峰命名的自动映射开关

mybatis:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    map-underscore-to-camel-case: true




ConfigurationProperties

上方所说的通过 @value注解配置参数,如果属性过多也会变得相当繁琐,我们可以直接将配置文件当中的参数赋予变量

  • 前提
  1. 配置文件中的参数名称应该与变量名称一致
  2. 需要将变量所在类进行控制反转交予IOC容器管理
  3. 需要通过本节所讲的 @configurationProperties 注解说明配置参数的前缀

在这里插入图片描述
加上这个注解之后会弹出一个警告:
在这里插入图片描述
这个警告不会影响程序的正常执行,这个警告是提示我们还需要引入一项依赖,这个依赖是能够对该注解表示的Bean对象进行识别,等下一次配置文件中配置该参数是就会由相对应的提示

在这里插入图片描述

  • 不同点

@value 注解只能一个一个的进行外部属性的注入
@ConfigurationProperties 可以批量的将外部的属性配置注入到bean对象的属性中

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

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

相关文章

delphi获取windows右下角任务栏图标信息

今天在群里,看有人问怎么获取windows右下角任务栏图标信息 win7 x64 测试通过 unit Unit1;interfaceusesWinapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,Vcl.Controls, Vcl.Forms, Vcl.Dialogs,commctrl, Vcl.StdCtr…

MVC模式和三层架构

一.概述 M:Model&#xff0c;业务模型&#xff0c;处理业务V&#xff1a;View&#xff0c;视图&#xff0c;界面展示C&#xff1a;Controller&#xff0c;控制器&#xff0c;处理请求&#xff0c;调用模型和视图 M即model模型是指模型表示业务规则。在MVC的三个部件中&#xf…

鸿蒙OS开发实例:【ArkTS类库异步并发简述Promise】

Promise和async/await提供异步并发能力&#xff0c;是标准的JS异步语法。异步代码会被挂起并在之后继续执行&#xff0c;同一时间只有一段代码执行&#xff0c;适用于单次I/O任务的场景开发&#xff0c;例如一次网络请求、一次文件读写等操作。异步语法是一种编程语言的特性&am…

云原生:为企业带来的7大价值

在数字化浪潮席卷全球的今天&#xff0c;企业正面临着前所未有的机遇与挑战。云原生技术&#xff0c;以其独特的优势&#xff0c;正逐渐成为企业实现数字化转型的重要"工具"。今天我们就来聊聊&#xff0c;云原生为企业带来的价值。 &#x1f525;提升敏捷性 云原生架…

怎么对电脑屏幕进行远程控制

远程控制是指管理人员在异地通过计算机网络异地拨号或双方都接入Internet等手段&#xff0c;连通需被控制的计算机&#xff0c;将被控计算机的桌面环境显示到自己的计算机上&#xff0c;通过本地计算机对远方计算机进行配置、软件安装程序、修改等工作。 远程控制并不仅仅局限…

Linux和Windows安装PHP依赖管理工具Composer

Composer 是 PHP 的一个依赖管理工具。它允许申明项目所依赖的代码库&#xff0c;会在项目中安装它们。 Composer 不是一个包管理器。是的&#xff0c;它涉及 "packages" 和 "libraries"&#xff0c;但它在每个项目的基础上进行管理&#xff0c;在你项目的…

一维卷积神经网络的特征可视化

随着以深度学习为代表的人工智能技术的不断发展&#xff0c;许多具有重要意义的深度学习模型和算法被开发出来&#xff0c;应用于计算机视觉、自然语言处理、语音处理、生物医疗、金融应用等众多行业领域。深度学习先进的数据挖掘、训练和分析能力来源于深度神经网络的海量模型…

基于ssm的三省学堂-学习辅助系统(java项目+文档+源码)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的三省学堂-学习辅助系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 三省学堂-学习辅助系统的…

公司只有一个测试,要怎么继续呆下去?

在面试的时候&#xff0c;面试官可能会问&#xff1a;小公司、小团队&#xff0c;岗位就你一个人&#xff0c;怎么做 &#xff1f; 或者已经有的小伙伴已经在公司中面临只有一个测试的处境&#xff0c;这个时候我们应该怎么处理呢&#xff1f; 一 原因分析 公司只有一个测试人…

Golang 哈希表底层实现原理

1、本文讨论Golang的哈希表 Golang哈希表的实现&#xff0c;底层数据结构是数组单链表&#xff0c;链表节点由8个key、value和键的高八位组成的。为了方便理解&#xff0c;先简单看一个图快速理解。 我们来看一下Golang哈希表的结构体定义 简单介绍一下结构体中几个关键的…

基于SpringBoot+Vue在线考试系统设计与实现+搭建视频

介绍 该在线考试系统共包含三种角色&#xff0c;分别是&#xff1a;学生、老师和管理员&#xff0c;不同角色对系统的功能需求也不同。 具体功能如下&#xff1a; 1&#xff09;学生 考生注册、考生登录、在线考试、我的成绩、我的题库、修改个人资料等功能。 2&#xff0…

网络攻防中之url跳转过程分析和使用欺骗方法生成自己的恶意链接过程,以及点击劫持和绕过验证的几种方式

网络攻防中之url跳转过程分析和使用欺骗方法生成自己的恶意链接过程,以及点击劫持和绕过验证的几种方式。 URL跳转过程分析 URL跳转是Web应用中常见的一种行为,它通常通过HTTP重定向来实现。在网络攻防中,分析URL跳转过程对于理解应用的行为和识别潜在的安全漏洞至关重要。 …

吴恩达2022机器学习专项课程(一) 4.6 运行梯度下降第一周课程实验:线性回归的梯度下降算法

问题预览/关键词 更新梯度下降对模型拟合&#xff0c;等高线图&#xff0c;3d空间图的变化。什么是批量梯度下降。实验目标计算梯度运行梯度下降梯度下降迭代次数和成本函数的关系可视化模型预测在等高线图上的梯度下降学习率过大报错问题 笔记 1.模型拟合&#xff0c;等高线…

怎么修改图片的创建日期和修改日期?

怎么修改图片的创建日期和修改日期&#xff1f;大家都应该知道&#xff0c;电脑上的任何一种文件都有创建日期和修改日期&#xff0c;不管word、excel、ppt还是图片&#xff0c;这两个时间属性是都必须具备的。在数字时代&#xff0c;我们经常使用照片来记录珍贵的时刻和重要的…

VISA、masterCard卡进行USDT消费,无需实名,0年费,0月费

开卡流程 1、点击获取卡 2、注册之后点击“流量钱包->点击点此充值” 3、选择积分充值点击确认即可 在返回到首页点击申请卡&#xff0c;选择534786与556150都可以&#xff0c;选择钱包支付即可 点击获取卡片

【Java代码审计】SpEL表达式注入篇

【Java代码审计】SpEL表达式注入篇 1.SpEL 介绍2.SpEL漏洞概述3.SpEL漏洞演示4.SpEL漏洞修复 1.SpEL 介绍 Spring 表达式语言是一种功能强大的表达式语言&#xff0c;用于在运行时查询和操作对象视图&#xff0c;语法上类似于 Unified EL&#xff0c;但提供了更多的特性&#…

Flutter应用在苹果商店上架前的准备工作与注意事项

引言 &#x1f680; Flutter作为一种跨平台的移动应用程序开发框架&#xff0c;为开发者提供了便利&#xff0c;使他们能够通过单一的代码库构建出高性能、高保真度的应用程序&#xff0c;同时支持Android和iOS两个平台。然而&#xff0c;完成Flutter应用程序的开发只是第一步…

【Servlet】继承关系以及service方法

文章目录 一、继承关系二、相关方法 一、继承关系 Servlet接口下有一个GenericServlet抽象类。在GenericServlet下有一个子类HttpServlet&#xff0c;它是基于http协议。 继承关系 javax.servlet.Servlet接口​ javax.GenericServlet抽象类​ javax.servlet.http.HttpServ…

毕马威:《智慧之眼:开启汽车感知新时代》

在全球科技飞速发展和产业革新的大潮中&#xff0c;汽车产业正在以前所未有的速度向网联化、智能化的方向转型。汽车传感器作为智能联网汽车发展的关键环节之一&#xff0c;扮演着举足轻重的角色。 毕马威一直关注汽车产业的变化与发展&#xff0c;为了更好地为汽车行业赋能&a…

python 哔哩哔哩视频去水印

使用python 去除视频中的水印 1. 需要安装的包 pip install moviepy pip install numpy pip install opencv_python pip install tqdm 2. 代码 import cv2 import numpy as np import glob from moviepy.editor import VideoFileClip import os from tqdm import tqdm# 判…