springboot:概述配置文件及搭建 springboot 多配置文件功能

一、创建一个 springboot 项目

1、创建好之后的 sprinboot 项目 目录结构如下
在这里插入图片描述
2、application.properties 就是项目的配置文件
配置文件有两种格式,默认就是 application.properties 格式,
另外一种格式就是 application.yml

两种格式的区别
properties 是以 ”.“ 做分割符
yml 是以 “:” 做分隔符, “:” 后面必须要有空格,yml 是天然的树状结构
yml 如果两个属性,是在同一个父级,就不用再写父级,,比如下图中设置的端口、地址
而 properties 则都需要写全
yml 每一级之间必须要换行,并且第二级前面必须要 tab 缩进,比如下图中的 server 和 port,如果是同级就不用进行缩进,比如下图中的 port 和 address

比如我分别在两个不同配置文件里面设置端口、地址
properties
在这里插入图片描述
yml
在这里插入图片描述

3、使用 @value 注解获取配置文件中的属性

比如说我在启动类中获取配置文件中的 address
@Value("${server.address}")

package com.wxw.springboot01;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@SpringBootApplication
public class Springboot01Application {

	@Value("${server.address}")
	private String address;

	public static void main(String[] args) {
		SpringApplication.run(Springboot01Application.class, args);
	}


	@RequestMapping("hello")
	public void hello(){
		System.out.println(address);
	}

}

浏览器访问 http://localhost:8081/hello 地址
控制台就会输出

在这里插入图片描述

二、使用配置文件中的 profile 切换多配置

1、使用配置文件实现多配置文件切换
比如说实际开发项目的过程中,我们可能有多个代码环境,这个时候就需要进行切换了

一个开发环境(dev),一个测试环境(test),一个生产环境(prod)
配置文件中的 “—” 三个杠,代表分割文档块的作用,如下图,就相当于我建立了三个配置文件,分别是 dev、test、prod

spring.profiles.active 可以指定使用哪个配置文件

server:
  address: localhost

#指定使用 dev 配置文件
spring:
  profiles:
    active: dev

---
spring:
  profiles: dev

server:
  port: 8081

---
spring:
  profiles: test

server:
  port: 8082

---
spring:
  profiles: prod

server:
  port: 8083

启动项目,可以看到控制台有如下信息打印,表示当前使用 dev 环境,端口 8081在这里插入图片描述

如果觉得三个文档块放在一个配置文件里面,后面配置多了看起来可能不方便,还可以直接创建三个配置文件,效果一样在这里插入图片描述

三、使用配置文件中的 profile + maven 切换多配置

1、先贴上完整代码
pom 文件中加入以下内容

<profiles>
		<!--开发环境-->
		<profile>
			<id>dev</id> 
			<properties>
			<!--对应每个不同配置文件 profiles 的名称-->
				<spring.active>dev</spring.active>
			</properties>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
		</profile>
		<!--测试环境-->
		<profile>
			<id>test</id>
			<properties>
			<!--对应每个不同配置文件 profiles 的名称-->
				<spring.active>test</spring.active>
			</properties>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
		</profile>
		<!--生产环境-->
		<profile>
			<id>prod</id>
			<properties>
			<!--对应每个不同配置文件 profiles 的名称-->
				<spring.active>prod</spring.active>
			</properties>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
		</profile>
	</profiles>

spring.active 是自己命名的,下面配置文件取用此属性的值
activeByDefault 根据属性的 true 或者 false 确定使用哪个配置文件,如当前使用的是 dev

配置文件内容

server:
  address: localhost


spring:
  profiles:
    active: @spring.active@

---
spring:
  profiles: dev

server:
  port: 8081

---
spring:
  profiles: test

server:
  port: 8082

---
spring:
  profiles: prod

server:
  port: 8083

配置文件中直接通过 @spring.active@ 获取 pom 文件里面指定为 true 的配置文件
这样,如果后面需要切换配置文件,只需要更改 pom 文件里面的 activeByDefault 属性就可以了,比如要使用 test 就将此属性改为 true,使用 prod 就将此属性改为 true,记得其他的配置都改为 false

2、使用 maven 打包项目时 指定配置文件

clean package -U -DskipTests=true -P dev

-P dev:如果项目中配置了 profile 切换配置文件环境的,按照这种方式打包就好了
dev 就是 pom 文件中 每个profile 中的 id
比如此处就是打包开发环境

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值