IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> SpringBoot配置文件、多配置、激活 -> 正文阅读

[Java知识库]SpringBoot配置文件、多配置、激活

目录

1、配置文件分类

2、配置文件语法格式

3、配置文件优先级

4、读取配置文件的方式

1.@Value

2) Environment

3) @ConfigurationProperties

5、Profile多文件配置

1.profile多文件配置方式

1.多profile文件方式

2.yml多文档方式

1.profile激活方式

1.配置文件

2.外部参数(虚拟机参数)

3.外部参数(命令行参数)


1、配置文件分类

????????SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认约定的话,就可以使用 application.properties或者application.yml(application.yaml)进行配置,配置文件路径为src/main/resources下,application是配置文件默认名称。

2、配置文件语法格式

application.properties(无需讲解,传统常用的)

service.port=8080

application.yml、application.yaml

service:
  port: 8080
#########对象
person1:
  name: ywy #字段
  age: 20
#行内写法
person2: {name: ywy,age: 20}

#########数组
adress1:
  - 北京
  - 上海
#行内写法
adress2: [北京,上海]

#########纯量
msg1: '初见只一回,\n 余生来世都幸会' #不会识别转义字符,会原样输出
msg2: '如果结果不如你所愿,\n 就在尘埃落定前奋力一搏' #会识别转义字符

#########参数引用
name: weny.yang
person:
  myname: ${name} #输出为weny.yang
? YAML语法:
1.大小写敏感
2.数据值前边必须有空格,作为分隔符
3. 使用缩进表示层级关系
4. 缩进时不允许用Tab键,只许使用空格(各系统Tab对应的空格数目可能不同,导致层次混乱)
5. 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
6. # 表示注释,从这个字符一直到行尾,都会被解析器忽略

? ? ??

????????相比较properties配置语法,YAML是一种更容易被人类阅读,并且容易和脚本语言交互,可以被支持YAML库的不同的编程语言程序导入,比如: C/C++, Ruby, Python, Java, Perl, C#, PHP等。YML文件是以数据为核心的,比传统的xml方式更加简洁,YAML文件的扩展名可以使用.yml或者.yaml。

3、配置文件优先级

在同一级目录下优先级为:properties > yml > yaml
不同文件配置了相同的属性,则高优先级的配置会覆盖低优先级的配置,不同的配置属性会各自被加载。

4、读取配置文件的方式

1.@Value

小范围取值的话,直接在需要的地方使用该注解即可,简单方便,语法如下:

@Value("${person1.name}") //import org.springframework.beans.factory.annotation.Value;
private String name;

2) Environment

项目启动时,配置文件中的数据会封装到org.springframework.core.env.Environment类中,在需要中的地方注入该对象,调用该类继承的org.springframework.core.env.PropertyResolver接口中的
String getProperty(String var1)方法获取值。
@Autowired
private Environment ev;//import org.springframework.core.env.Environment;

String value = ev.getProperty("person.myname");

3) @ConfigurationProperties

使用配置处理器,解析配置文件,将配置封装到POJO实体类中,依赖和实体示例如下:

package com.example.demo.domain;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

//1.将当前对象放入Spring容器管理
@Component
//2.根据前缀注入指定区域的数据,内部属性必须和配置一一对应
@ConfigurationProperties(prefix = "person")
public class Person {

    private String name;
    private int age;
    
    get/set...
}

5、Profile多文件配置

????????开发Spring Boot应用时,通常同一套程序会被安装到不同环境,比如:开发、测试、生产等。其中数据库地址、服务器端口等配置都不同,如果每次打包时,都要修改配置文件,那么非常麻烦,profile功能就是来进行动态配置切换的。

1.profile多文件配置方式

1.多profile文件方式

提供多个配置文件,每个代表一种环境。
? application-dev.properties/yml 开发环境
? application-test.properties/yml 测试环境
? application-prd.properties/yml 生产环境

2.yml多文档方式

在yml中使用 --- 分隔不同区域配置(当前语法是SpringBoot2.5.4版本,其他版本不一样):
---
spring:
  config:
    activate:
      on-profile: dev #给当前区域命名
server:
  port: 8081
---
spring:
  config:
    activate:
      on-profile: test
server:
  port: 8082
---
spring:
  config:
    activate:
      on-profile: prd
server:
  port: 8083

1.profile激活方式

1.配置文件

#指定读取不同环境的配置文件
spring:
  profiles:
    active: dev

2.外部参数(虚拟机参数)

Idea示例,在启动配置中,修改虚拟机参数,指定读取配置文件:

-Dspring.profiles.active=dev

3.外部参数(命令行参数)

?1.Idea示例,在启动配置中,输入命令行,指定读取配置文件:

--spring.profiles.active=dev

?2.cmd运行示例

双击package进行打包,?打包完成后,找到控制台提醒的包存放路径:

?在当前目录按住shift键+鼠标右键,打开PowerShell命令窗口,输入如下命令:

java -jar .\demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-09-02 11:13:10  更:2021-09-02 11:14:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 12:51:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码