博客
关于我
SpringBoot——配置文件的相关介绍
阅读量:357 次
发布时间:2019-03-04

本文共 2684 字,大约阅读时间需要 8 分钟。

Spring Boot配置文件详解

1. 配置文件

Spring Boot使用一个全局的配置文件,文件名为固定的application.propertiesapplication.yml。配置文件的作用是修改Spring Boot自动配置的默认值,Spring Boot会自动为我们配置好很多参数。

1.1 配置文件类型

  • application.properties:以键值对形式存储配置信息。
  • application.yml:使用YAML格式存储配置信息,更加适合数据化配置。

1.2 配置文件的作用

  • 修改Spring Boot自动配置的默认值。
  • Spring Boot会自动为我们配置好很多参数,但我们可以通过配置文件来修改这些默认值。

2. YAML语法

YAML( Yet Another MarkDown Language)是一种标记语言,广泛用于配置文件中。YAML的特点是以数据为中心,适合存储配置信息。

2.1 YAML语法基础

  • 键值对key: value,键和值之间必须有空格。
  • 缩进:通过缩进来表示数据的层级关系,左对齐的字段属于同一层级。
  • 普通值:包括数字、字符串、布尔值等。
  • 字符串处理
    • 双引号":不会转义特殊字符。
    • 单引号' ':会转义特殊字符。
  • 映射(对象)key: value,下一行继续写对象属性。
  • 数组(List、Set):用-表示数组中的元素。

2.2 YAML示例

server:  port: 8088

2.3 YAML与XML对比

server:  port: 8888
8081

3. 配置文件值注入

3.1 @Value和@ConfigurationProperties

  • @Value:用于注入单个值,需要手动指定值。
  • @ConfigurationProperties:用于批量注入配置文件中的属性,支持复杂类型封装。

3.2 示例

@Component@ConfigurationProperties(prefix = "person")public class Person {    private String lastName;    private Integer age;    private Boolean boss;    private Date birth;    private Map
maps; private List
lists; private Dog dog;}

3.3 application.yml配置示例

server:  port: 8081person:  age: 12  boss: true  last-name: zlj  birth: 2022/12/17  maps:    k2: v2    k1: v1  lists:    - zlj    - zzg  dog:    name: z    age: 13

3.4 @PropertySource和@ImportResource

  • @PropertySource:用于加载指定配置文件。
  • @ImportResource:用于导入Spring的配置文件。

3.5 示例

@Component@PropertySource(value = {"classpath:person.properties"})@ConfigurationProperties(prefix = "person")public class Person {    // ...}

4. 配置文件占位符

4.1 随机数

  • ${random.value}:随机值
  • ${random.int}:随机整数
  • ${random.long}:随机长整数
  • ${random.int(10)}:生成长度为10的随机整数
  • ${random.int[1024,65536]}:在1024到65536之间生成随机整数

4.2 拼接已有配置值

person:  age: 12  boss: true  last-name: zlj  birth: 2022/12/17  maps:    k2: ${random.int}    k1: ${random.int}  lists:    - zlj    - zzg  dog:    name: zl    age: 13

4.3 application.properties拼接示例

person.last-name=张三${random.uuid}person.age=${random.int}person.birth=2017/12/15person.boss=falseperson.maps.k1=v1person.maps.k2=14

5. Profile配置

5.1 多文档块方式

spring:  profiles:    active: dev  http:    encoding:      default: UTF-8

5.2 激活指定Profile

  • 配置文件中指定:spring.profiles.active=dev
  • 命令行参数:java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev
  • 虚拟机参数:-Dspring.profiles.active=dev

6. 配置文件加载位置

Spring Boot会从以下位置加载application.propertiesapplication.yml

  • file:./config/
  • file:./
  • classpath:/config/
  • classpath:/
  • 6.1 自定义配置文件位置

    java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar --spring.config.location=G:/application.properties

    7. 自动配置

    Spring Boot会自动加载大量自动配置类,主要功能包括:

    • 数据库配置(MySQL、MongoDB等)
    • Web配置(嵌入式服务器、热部署等)
    • 日志配置
    • 安全配置(Basic、Form-based等)
    • 角色配置(RBAC)

    我们只需要关注Spring Boot默认配置中没有覆盖的部分,并通过配置文件修改需要自定义的参数。

    转载地址:http://peqq.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现eulers totient欧拉方程算法(附完整源码)
    查看>>
    Objective-C实现EulersTotient欧拉方程算法(附完整源码)
    查看>>
    Objective-C实现eval函数功能(附完整源码)
    查看>>
    Objective-C实现even_tree偶数树算法(附完整源码)
    查看>>
    Objective-C实现Exceeding words超词(差距是ascii码的距离) 算法(附完整源码)
    查看>>
    Objective-C实现exchange sort交换排序算法(附完整源码)
    查看>>
    Objective-C实现ExponentialSearch指数搜索算法(附完整源码)
    查看>>
    Objective-C实现extended euclidean algorithm扩展欧几里得算法(附完整源码)
    查看>>
    Objective-C实现ExtendedEuclidean扩展欧几里德GCD算法(附完整源码)
    查看>>
    Objective-C实现external sort外排序算法(附完整源码)
    查看>>
    Objective-C实现Factorial digit sum阶乘数字和算法(附完整源码)
    查看>>
    Objective-C实现factorial iterative阶乘迭代算法(附完整源码)
    查看>>
    Objective-C实现factorial recursive阶乘递归算法(附完整源码)
    查看>>
    Objective-C实现factorial阶乘算法(附完整源码)
    查看>>
    Objective-C实现Farey Approximation近似算法(附完整源码)
    查看>>
    Objective-C实现Fast Powering算法(附完整源码)
    查看>>
    Objective-C实现Fedwick树算法(附完整源码)
    查看>>
    Objective-C实现fenwick tree芬威克树算法(附完整源码)
    查看>>
    Objective-C实现FenwickTree芬威克树算法(附完整源码)
    查看>>
    Objective-C实现fermat little theorem费马小定理算法(附完整源码)
    查看>>