SpringBoot_2-配置文件

SpringBoot学习2-配置文件

配置文件介绍

在创建SpringBoot项目时,会自动创建一个配置文件如下 未修改的后缀名应为.properties,后续会介绍

image-20240517200525807

介绍:配置文件是 Spring Boot 中用于配置应用程序参数和设置的文件;

仔细来说就是将应用程序的端口号、数据库连接信息、日志配置或者重要类中的静态信息等在配置文件中进行设置;

初次看到这段介绍时可能会感觉云里雾里,脑子中可能 会蹦出很多疑问:啥玩意?不能在项目结构中单独设置吗?为什么重要信息还得再写一一遍在这个配置文件中等等;但是当你真正着手项目时,便会感叹:配门!

当将端口号或者数据库连接信息书写在配置类中时,Spring Boot 会自动加载配置文件中的参数和设置,并将其应用于应用程序中.当项目数据库发生变更时,你只需要点击配置文件,找到对应数据库配置信息进行修改,项目的数据库便会发生修改;总之,配置文件使项目变得易于维护,你不必去长长的项目中去一个一个去寻找对应变量,而是只需打开配置文件,寻找到对应项即可

配置文件种类

application.properties,application.yml,application.yaml;(yml格式与yaml格式完全一样)

在Springboot2.4.0及以后,配置文件的优先级为yaml>yml>propertise

在boot中,一个项目可能会有多个配置文件,在同一目录下若有相同内容编译器执行的优先级如上所述

yml配置文件的书写与设置

如今大多项目都使用yml文件作为配置文件,在此用例说明:

  1. 使用缩进来表示层级关系。YAML 文件中的数据以键值对的形式存储,每个键后面跟一个冒号,然后是该键的值。学习过python的应该会很熟悉例如:
server:
  port: 8080
  #在书写键的值时应为冒号+空格加值,否则会出错
  1. 使用空格来表示缩进,而不是使用制表符(Tab)。

  2. 字符串可以直接在键值对中写,不需要用引号括起来。例如:

username: root
  1. 布尔值可以使用 truefalseyesno 等来表示。例如:
enabled: true
  1. 数组可以使用中括号 [] 来表示,元素之间用逗号分隔。例如:
roles:
  - admin
  - user
  1. 列表中的元素可以是字符串、布尔值、数字等,元素之间用空格分隔。例如:
fruits:
  - apple
  - banana
  - cherry
  1. 字典可以使用 {} 来表示,键值对之间用空格分隔。例如:
person:
  name: John
  age: 30
  1. 空值可以使用 null 来表示。例如:
city: null
关于spring中配置文件有关

了解到yml文件的书写规则还不够,你还应该了解如何书写配置和使用他们

在项目中,最常见的前缀可能就是spring和server了,我来说明他们的不同

  • server属性:主要用于配置嵌入式服务器的行为和设置,与HTTP请求、SSL、端口等相关。
  • spring属性:主要用于配置Spring框架和Spring Boot应用程序的各种行为和模块,比如数据源、消息、国际化、安全等。

通过不同的前缀将配置项分类,可以使配置文件更清晰、结构更合理。例如,将与服务器相关的配置集中在server下,将与Spring框架相关的配置集中在spring下,便于管理和维护。当然,你也可以自定义属性名,如何使用待会说明

了解了基本概念,我们就可进行实操来熟悉他了;比如我想将项目的运行端口号修改一下或者加一些前置路径,就可以 修改配置文件

server:
  port: 8088
  context-path: /zhang 
  

此时项目的启动端口号就变为了8080,并且访问路径变为了localhost:8088/zhang,运行项目进行验证

image-20240517210526120

映射配置文件类

你也可以将项目中重要的变量信息放入配置类中,方便后续进行修改,下面演示一下相关操作

单个变量读取:

  • 使用@Value注解将其注入
#在配置文件中设置管理员的名字
user:
  name: xiao
  • 使用@Value()将其注入
@RestController
public class Hello {
  @Value("${user.name}")
  private String name;
    @RequestMapping("/hello")
    public String hello(){
      System.out.println(name);
       return "HelloWord!";
    }
}

运行即可看到控制台出现xiao

将配置文件中的值映射到类中

在项目中配置文件中的值往往使用专门的类来接收配置文件的值,下面将详细说明是如何达成的

前置知识:@ConfigurationProperties: 是 Spring Boot 中一个注解,用于将配置文件中的属性映射到一个 Java Bean 类中。

使用:

在yml文件中新建几个属性:

zhang:
  name:xaioming
  age:18
  sex:nan

新建一个类

package com.item.demos.web;

import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Data//lombok提供的注解,为Java 类自动生成常见的样板代码,如 getter、setter、toString、equals 和 hashCode 方法
@ConfigurationProperties(prefix = "zhang")
@Component//依赖注入的注解,下节会详细说明
public class Manger {
    String name;
    Integer age;
    String sex;
}

此时yml文件中的属性就已经映射成功了;打开yml文件,ctrl+鼠标左键点击属性名,如name,若成功跳转到Manger类说明映射成功了,或者采用输出语句也可验证;

映射失败的原因可能是因为yml书写格式不规范,如为空一格就写值;也有可能是因为类中未书写set,get语句/没使用@Data,如果没有手动提供 gettersetter 方法,Spring 无法正确地访问和设置这些属性,导致映射失败。

作用:在更多时候是用来配置一些功能所需要的参数,如若功能需要提供微信账号与微信密码,书写在配置类中在开发的时候可以方便的修改账户密码,伴随着学习的更深入,你会逐渐理解它;

总结

看完你应当了解到什么是配置文件,配置文件的格式与作用,如何使用配置文件;掌握的配置文件映射的书写与@ConfigurationProperties注解

作用:在更多时候是用来配置一些功能所需要的参数,如若功能需要提供微信账号与微信密码,书写在配置类中在开发的时候可以方便的修改账户密码,伴随着学习的更深入,你会逐渐理解它;

总结

看完你应当了解到什么是配置文件,配置文件的格式与作用,如何使用配置文件;掌握的配置文件映射的书写与@ConfigurationProperties注解

  • 21
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值