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

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

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: 8081
person:
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/15
person.boss=false
person.maps.k1=v1
person.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 线程你理解的可能是错的
    查看>>
    Node.js 调用微信公众号 API 添加自定义菜单报错的解决方法
    查看>>
    node.js 配置首页打开页面
    查看>>
    node.js+react写的一个登录注册 demo测试
    查看>>
    Node.js中环境变量process.env详解
    查看>>
    Node.js之async_hooks
    查看>>
    Node.js升级工具n
    查看>>
    Node.js卸载超详细步骤(附图文讲解)
    查看>>
    Node.js基于Express框架搭建一个简单的注册登录Web功能
    查看>>
    Node.js安装与配置指南:轻松启航您的JavaScript服务器之旅
    查看>>
    Node.js安装及环境配置之Windows篇
    查看>>
    Node.js安装和入门 - 2行代码让你能够启动一个Server
    查看>>
    node.js安装方法
    查看>>
    Node.js官网无法正常访问时安装NodeJS的方法
    查看>>
    Node.js的循环与异步问题
    查看>>
    Node.js高级编程:用Javascript构建可伸缩应用(1)1.1 介绍和安装-安装Node
    查看>>
    nodejs + socket.io 同时使用http 和 https
    查看>>
    NodeJS @kubernetes/client-node连接到kubernetes集群的方法
    查看>>
    Nodejs express 获取url参数,post参数的三种方式
    查看>>
    nodejs http小爬虫
    查看>>