博客
关于我
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/

    你可能感兴趣的文章
    Node.js安装与配置指南:轻松启航您的JavaScript服务器之旅
    查看>>
    nodejs libararies
    查看>>
    nodejs-mime类型
    查看>>
    nodejs中Express 路由统一设置缓存的小技巧
    查看>>
    Node入门之创建第一个HelloNode
    查看>>
    NotImplementedError: Cannot copy out of meta tensor; no data! Please use torch.nn.Module.to_empty()
    查看>>
    npm run build 失败Compiler server unexpectedly exited with code: null and signal: SIGBUS
    查看>>
    npm WARN deprecated core-js@2.6.12 core-js@<3.3 is no longer maintained and not recommended for usa
    查看>>
    npm和yarn的使用对比
    查看>>
    npm报错unable to access ‘https://github.com/sohee-lee7/Squire.git/‘
    查看>>
    npm的问题:config global `--global`, `--local` are deprecated. Use `--location=global` instead 的解决办法
    查看>>
    NR,NF,FNR
    查看>>
    nrf开发笔记一开发软件
    查看>>
    NSDateFormatter的替代方法
    查看>>
    NSOperation基本操作
    查看>>
    NSSet集合 无序的 不能重复的
    查看>>
    NT AUTHORITY\NETWORK SERVICE 权限问题
    查看>>
    ntko文件存取错误_苹果推送 macOS 10.15.4:iCloud 云盘文件夹共享终于来了
    查看>>
    nullnullHuge Pages
    查看>>
    numpy 用法
    查看>>