SpringBoot 及 配置文件

简介: SpringBoot 及 配置文件

一、什么是 SpringBoot?

Spring 是包含了众多工具的IoC容器,Spring Boot 是 Spring 的脚手架,是为了快速开发 Spring 而创建的一个框架。

二、Spring Boot 优点

  • 快速集成框架,Spring Boot 提供了启动添加依赖的功能,用于秒级集成各种框架。
  • 内置运行容器,无需配置 Tomcat 等 Web 容器,直接运行和部署程序。
  • 快速部署项目,无需外部容器即可启动并运行项目。
  • 可以完全抛弃繁琐的 XML,使用注解和配置的方式进行开发。
  • 支持更多的监控的指标,可以更好的了解项目的运行情况。

三、SpringBoot 工程目录

PS: 在 SpringBoot 项目中将 Bean 注册到容器中不在需要进行配置了。但所有你需要存放到容器里的类,必须要放到 启动类的同级目录中,或者放到启动类的子目录中。 (约定大于配置)

四、SpringBoot 配置文件

对于整个项目来说,配置文件是非常重要的,它里面通常保存了一些重要的数据,例如:

  • 数据库的连接信息(包含用户名和密码的设置);
  • 项目的启动端口;
  • 第三方系统的调用秘钥等信息;
  • 用于发现和定位问题的普通日志和异常日志等。

1、配置文件的格式

SpringBoot 的配置文件主要有两种格式:

  1. 后缀名为.properties
  2. 后缀名为.yml

配置文件中的配置项分为两类:

  1. 系统配置项。:点击这里查看官方文档
  2. 自定义配置项。

概要说明:

  1. .properties 类型的配置文件,是创建 Spring Boot 项目时默认的文件格式。
  2. 理论上讲,properties 可以和 yml 一起存在于一个项目当中,当 properties 和 yml ⼀起存在⼀个项目中时,如果配置文件中出现了同样的配置,那么这个时候会以 properties 中的配置为主,也就是 .properties 配置文件的优先级最高,但加载完 .properties 文件之后,也会加载 .yml 文件的配置信息。
  3. 虽然 .properties 可以和 .yml 共存,但实际的业务当中,我们 通常会采取一种统一的配置文件格式,这样可以更好的维护(降低故障率)。

2、properties 配置文件

文件内容语法说明:properties 中的配置项是以键值的形式配置的,keyvalue 之间是以 “=” 连接的。

例子:设置配置项

# 配置项⽬端⼝号
server.port=8081
# 配置 JDBC
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/dbname?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root

例子:读取配置项

读取配置文件中的内容,可以使用 @Value 注解来实现。@Value 注解使用“${}”的格式读取。

@Controller
@ResponseBody
public class Test {
  // 读取配置项
    @Value("${server.port}")
    private String myConfig;
}

虽然 properties 的配置文件结构比较清晰,但是当配置注入 JDBC 时会出现很多的冗余信息,比如上述重复出现的 spring.datasource。想要解决这个问题,我们可以考虑使用 yml 格式的配置文件。

3、yml 配置文件

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

例子:设置配置项

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

和上面使用 properties 文件配置数据库连接进行对比可以发现,当前场景下,使用 yml 可以减少大量冗余信息。

例子:读取配置项

yml 中读取配置文件中的内容和 properties 相同,可以使用 @Value 注解来实现。@Value 注解使用“${}”的格式读取。

@Controller
@ResponseBody
public class Test {
  // 读取配置项
    @Value("${spring.datasource.url}")
    private String myConfig;
}

除了以上基础的功能外,在 yml 中还可以 配置对象:

stu:
  name: 张三
  password: 123456
  id: 123

使用 @ConfigurationProperties 读取对象

@Controller
@ConfigurationProperties("stu")
@Data
public class User {
    private String name;
    private String password;
    private int id;

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", password='" + password + '\'' +
                ", id=" + id +
                '}';
    }
}

4、多环境配置文件

一般代码的运行环境主要为以下三种:

  1. 本地开发环境
  2. 测试环境
  3. 生产环境

为了满足多个环境下的配置需求,可以创建多个用于不同环境的配置文件:

  1. application.properties:默认的配置文件,包含共享的属性。
  2. application-dev.properties:开发环境的配置文件
  3. application-test.properties:测试环境的配置文件
  4. application-prod.properties:生产环境的配置文件

我们可以通过在 application.properties 配置文件中指定运行环境的配置文件:

PS: 在 Spring 中,配置文件的命名约定是基于 application-{profile}.propertiesapplication-{profile}.yml 的格式,其中 {profile} 是 spring.profiles.active 属性的值。

# 指定开发环境
spring.profiles.active=dev

5、properties 和 yml 区别

  1. properties 是以 key=value 的形式配置的键值类型的配置文件,而 yml 使用的是类似 json 格式的树形 配置方式进行配置的,yml 层级之间使用换行缩进的方式配置,key 和 value 之间使用“: ”英文冒号加空格的方式设置,并且空格不可省略。
  2. properties 为早期并且 默认的配置文件格式,但其配置存在⼀定的冗余数据,使用 yml 可以很好的解决数据冗余的问题。
  3. yml 通用性更好,支持更多语言,如 Java、Go、Python 等
  4. yml 支持更多的数据类型。如对象、集合等。


相关文章
|
数据安全/隐私保护 Docker 容器
厉害了,如何搭建一套自己的私有网盘?
本文教大家用docker搭建一款自己的私有网盘,教程给大家分享一下。 开源云盘选择 搭建前我仔细看了一下各个开源私有云盘的实现,有以下几种:
741 0
厉害了,如何搭建一套自己的私有网盘?
安装MySQ报错 warning: /var/cache/yum/x86_64/7/mysql80-community/packages/mysql-community-client-8.0.
安装MySQ报错 warning: /var/cache/yum/x86_64/7/mysql80-community/packages/mysql-community-client-8.0.
1937 1
安装MySQ报错 warning: /var/cache/yum/x86_64/7/mysql80-community/packages/mysql-community-client-8.0.
|
5月前
|
安全 Java 程序员
SpringBoot参数配置:一场“我说了算”的奇幻之旅
SpringBoot应用就像一个超级智能的变形金刚,而参数配置就是你手里的万能遥控器!你想让它变成温柔的Hello Kitty模式?调参数!
211 4
|
12月前
|
存储 安全 Linux
Proxmox VE 9.0 正式版发布 - 开源虚拟化管理平台
Proxmox VE 9.0 正式版发布 - 开源虚拟化管理平台
2055 0
|
8月前
|
XML Java 数据库连接
Spring Boot集成MyBatis
本文系统讲解Spring Boot集成MyBatis的两种方式:基于XML和注解。涵盖依赖配置、yml设置、驼峰命名映射,并详解@Select、@Insert等注解用法及@Param、@Results问题解决方案,结合实战示例,具有较强实用性,适用于日常开发参考。
|
JavaScript 前端开发 Java
SpringBoot配置文件 —— 超详细全方位教程
本文是一篇关于SpringBoot配置文件的超详细全方位教程,涵盖了配置文件的作用、SpringBoot中的配置文件格式、优先级、properties和yml配置文件的详解及语法、读取配置文件的方法、转义字符和单双引号的使用、配置对象、集合和Map,以及yml的优缺点。
2107 0
SpringBoot配置文件 —— 超详细全方位教程