【SpringBoot】有哪些优点+配置文件如何配置?

  • 博主简介:想进大厂的打工人
  • 博主主页:@xyk:
  • 所属专栏: JavaEE进阶 

Spring 的诞⽣是为了简化 Java 程序的开发的,⽽ Spring Boot 的诞⽣是为了简化 Spring 程序开发
的。Spring Boot是一个开源的Java框架,用于快速构建应用程序和微服务。它基于Spring Framework,通过自动化配置和约定优于配置的方式,使开发人员可以更快地启动和运行应用程序。Spring Boot提供了许多开箱即用的功能和插件,包括嵌入式Web服务器、安全性、数据访问、缓存、测试和监控等,下面就来对SpringBoot项目中的相关配置文件来进行阐述~


目录

文章目录

一、SpringBoot的优点

二、SpringBoot配置文件

2.1 什么是配置文件

2.2 为什么需要配置文件

2.3 properties格式的配置文件

2.4 yml格式的配置文件

2.5 yml 配置不同类型及null:

2.6 yml配置对象

三、设置不同环境的配置文件

3.1 创建不同环境的配置文件:

3.2 在 application.properties或application.yml 中设置行环境


一、SpringBoot的优点

  1. 快速添加依赖,Spring Boot 提供了启动添加依赖的功能,⽤于秒级集成各种框架。
  2. 内置运⾏容器,⽆需配置 Tomcat 等 Web 容器,直接运⾏和部署程序。
  3. 快速部署项⽬,⽆需外部容器即可启动并运⾏项⽬。
  4. 可以完全抛弃繁琐的 XML,使⽤注解和配置的⽅式进⾏开发。
  5. ⽀持更多的监控的指标,可以更好的了解项⽬的运⾏情况。
     

Spring Boot 项⽬有两个主要的⽬录:

  • src/main/java 为 Java 源代码。
  • src/main/resources 为静态资源或配置⽂件:
  • /static:静态资源⽂件夹;
  • /templates:模版资源⽂件夹
     

【SpringBoot】有哪些优点+配置文件如何配置?_第1张图片

正确路径:

为了将Bean注入到SpringBoot容器中,要把注入到容器类的类和启动类放到同级目录下

【SpringBoot】有哪些优点+配置文件如何配置?_第2张图片

这时候 Spring Boot 项⽬才能正常的将 bean 注⼊到容器中,以上情况反应了 Spring Boot 项⽬的另⼀个特点:约定⼤于配置!!!

二、SpringBoot配置文件

2.1 什么是配置文件

配置文件是一种存储应用程序配置信息的文件,它包含了应用程序所需要的各种参数、选项和设置。SpringBoot配置文件是必须要存在的一个文件,用来配置SpringBoot应用程序的行为,可以使用多种配置文件格式,比如:properties、yml等。

【SpringBoot】有哪些优点+配置文件如何配置?_第3张图片

2.2 为什么需要配置文件

整个项⽬中所有重要的数据都是在配置⽂件中配置的,⽐如:

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

想象⼀下如果没有配置信息,那么 Spring Boot 项⽬就不能连接和操作数据库,甚⾄是不能保存可以⽤于排查问题的关键⽇志,所以配置⽂件的作⽤是⾮常重要的。

Spinrg常见的配置文件有两种:.properties 和 .yml,理论上来说,允许两种格式的配置文件可以同时存在,但是在实际开发中,为了可以更好的维护并降低故障发生的概率,我们通常只使用其中一种格式的配置文件,需要特别注意的是,.properties 格式的配置的优先级大于 .yml 格式的配置文件,但加载完 .properties ⽂件之后,也会加载 .yml ⽂件的配置信息。


2.3 properties格式的配置文件

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

# 端口号设置
#server.port=8080
mytest=zhangsan
mytest2=zhangsan2

# 连接数据库配置
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root

那么,如何读取配置文件中的自定义配置信息呢?

若想要主动读取配置文件的信息,可以使用@Value 注解,该注解使用${} 格式读取,以下代码演示如何读取上述代码中的自定义配置项:

【SpringBoot】有哪些优点+配置文件如何配置?_第4张图片 

【SpringBoot】有哪些优点+配置文件如何配置?_第5张图片

 从上述配置key看出,properties 配置⽂件中会有很多的冗余的信息,⽐如这些:

但是 .properties 格式对中文支持并不好,会出现乱码的情况,那么我们可以使用 .yml来解决这种问题~

2.4 yml格式的配置文件

yml 是 YAML 是缩写,它的全称 Yet Another Markup Language 翻译成中⽂就是“另⼀种标记语
⾔”。
基本语法:yml 是树形结构的配置⽂件,它的基础语法是“key: value”,注意 key 和 value 之间使⽤英⽂冒汗加空格的⽅式组成的,其中的空格不可省略!!

【SpringBoot】有哪些优点+配置文件如何配置?_第6张图片

server:
  port: 6060

# 自定义配置
mytest2: zhangsan2

# 配置数据库连接
spring:
  profiles:
    active: prod
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=utf8
    username: root
    password: root

相较 properties,代码冗余度降低~ yml 读取配置的⽅式和 properties 相同,使⽤ @Value 注解即可。

 【SpringBoot】有哪些优点+配置文件如何配置?_第7张图片

2.5 yml 配置不同类型及null:

# 字符串
string.value: Hello

# 布尔值,true或false
boolean.value: true
boolean.value1: false

# 整数
int.value: 10
int.value1: 0b1010_0111_0100_1010_1110 # ⼆进制

# 浮点数
float.value: 3.14159
float.value1: 314159e-5 # 科学计数法

# Null,~代表null
null.value: ~

需要注意的是,字符串类型是否带有引号,读取出来是不一样的~~

string:
    str1: Hello \n Spring Boot.
    str2: 'Hello \n Spring Boot.'
    str3: "Hello \n Spring Boot."
@Component
public class ReadYml {
    @Value("${string.str1}")
    private String str1;

    @Value("${string.str2}")
    private String str2;

    @Value("${string.str3}")
    private String str3;
    
    @PostConstruct
    public void postConstruct() {
        System.out.println("string.str1:" + str1);
    System.out.println("string.str2:" + str2);
    System.out.println("string.str3:" + str3);
    }
}

【SpringBoot】有哪些优点+配置文件如何配置?_第8张图片

从上述结果可以看出:

只有带有双引号的字符串,转义字符才能被正常解析。对于无引号和单引号的情况,转义字符没有变化的显示出来~

2.6 yml配置对象

我们还可以在 yml 中配置对象,如下配置:

student:
    id: 1
    name: Java
    age: 18

这个时候就不能⽤ @Value 来读取配置中的对象了,此时要使⽤另⼀个注解@ConfigurationProperties 来读取

@Component
@ConfigurationProperties("student")
@Data
public class Student {
    private int id;
    private String name;
    private int age;
    
}

在以上代码中,getter、setter以及toString方法均通过lombok实现。需要注意的是@ConfigurationProperties注解中的内容,需要与配置文件中对象的key相同。

    @Autowired
    private Student student;

    @PostConstruct
    public void postConstruct(){
        System.out.println(student);
    }

【SpringBoot】有哪些优点+配置文件如何配置?_第9张图片

想要查看 Spring Boot 更多系统配置项,访问官⽹:官网地址

三、设置不同环境的配置文件

3.1 创建不同环境的配置文件:

  • application-dev.properties
  • application-prod.properties
  • application-dev.yml
  • application-prod.yml
     

【SpringBoot】有哪些优点+配置文件如何配置?_第10张图片

3.2 在 application.properties或application.yml 中设置行环境

# 配置数据库连接
spring:
  profiles:
    active: prod

SpringBoot就会自动在运行的时候,加载设置的相关配置文件~

你可能感兴趣的:(JavaEE进阶,spring,boot,后端,java,spring)