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

    你可能感兴趣的文章
    OSPF技术连载17:优化OSPF网络性能利器——被动接口!
    查看>>
    OSPF技术连载18:OSPF网络类型:非广播、广播、点对多点、点对多点非广播、点对点
    查看>>
    OSPF技术连载19:深入解析OSPF特殊区域
    查看>>
    SQL Server 复制 订阅与发布
    查看>>
    OSPF技术连载20:OSPF 十大LSA类型,太详细了!
    查看>>
    OSPF技术连载21:OSPF虚链路,现代网络逻辑连接的利器!
    查看>>
    OSPF技术连载22:OSPF 路径选择 O > O IA > N1 > E1 > N2 > E2
    查看>>
    OSPF技术连载2:OSPF工作原理、建立邻接关系、路由计算
    查看>>
    OSPF技术连载5:OSPF 基本配置,含思科、华为、Junifer三厂商配置
    查看>>
    OSPF技术连载6:OSPF 多区域,近7000字,非常详细!
    查看>>
    OSPF技术连载7:什么是OSPF带宽?OSPF带宽参考值多少?
    查看>>
    OSPF技术连载8:OSPF认证:明文认证、MD5认证和SHA-HMAC验证
    查看>>
    OSPF故障排除技巧
    查看>>
    spring配置文件中<context:property-placeholder />的使用
    查看>>
    OSPF有哪些优势?解决了RIP的什么问题?
    查看>>
    OSPF的七种类型LSA
    查看>>
    OSPF的安全性考虑:全面解析与最佳实践
    查看>>
    ospf综合实验2 2012/9/8
    查看>>
    OSPRay 开源项目教程
    查看>>
    OSS 访问图片资源报“No ‘Access-Control-Allow-Origin‘”的错误
    查看>>