「Spring Boot 系列」05. Spring Boot Profiles(多环境配置)

简介: 「Spring Boot 系列」05. Spring Boot Profiles(多环境配置)

Spring Boot Profiles

Profile的是配置文件的意思,我们在开发Spring Boot应用时,通常同一个项目会被安装到不同的环境,而不同的环境又需要不同的配置。比如:


开发环境,应用需要连接一个可供调试的数据库单机进程

生产环境,应用需要使用正式发布的数据库,通常是高可用的集群

测试环境,应用只需要使用内存式的模拟数据库

其中数据库地址、服务器端口等等配置都不同,如果每次打包时,都要修改配置文件,那么就会非常麻烦。


Spring框架提供了profile的管理功能,我们可以使用profile功能来区分不同环境的配置。然后可以通过激活、指定参数等方式快速动态的切换环境。


profile配置方式

1) 多文件方式

新建多个配置文件,命名格式:application-环境名.yml

image.png


application-dev.yml 开发环境

server:
  port: 8081
# 给配置文件起名字,方便主配置文件引用
spring:
  config:
    activate:
      on-profile: dev

application-pro.yml生产环境

server:
  port: 8082
spring:
  config:
    activate:
      on-profile: pro

application-test.yml测试环境

server:
  port: 8083
spring:
  config:
    activate:
      on-profile: test

2) yml多文档方式

该方式只需要一个application.yml配置文件即可,在配置文件中使用 — (三个横杠)来分隔不同的环境配置

---
server:
  port: 8081
spring:
  profiles: dev
---
server:
  port: 8082
spring:
  profiles: pro
---
server:
  port: 8083
spring:
  profiles: test
---

profile激活方式

1) 配置文件

在yml配置文件中配置:

spring:
  profiles:
    active: test

2) 虚拟机参数

在VM options指定:-Dspring.profiles.active -dev

image.png

紧接着启动该项目,你会在控制台看到此时的环境就是你刚才设置的开发环境,覆盖了我们在配置文件中的激活配置

image.png


3) 命令行参数

第一种:--spring.profiles.active=pro

image.png

第二种:java -jar xxx.jar --spring.profiles.active =test

使用maven打包项目,打开该jar包所在目录,接着启动该项目,不会可以参考这个>>>Spring Boot的启动方式

image.png

相关文章
|
6月前
|
前端开发 Java 应用服务中间件
《深入理解Spring》 Spring Boot——约定优于配置的革命者
Spring Boot基于“约定优于配置”理念,通过自动配置、起步依赖、嵌入式容器和Actuator四大特性,简化Spring应用的开发与部署,提升效率,降低门槛,成为现代Java开发的事实标准。
|
6月前
|
前端开发 Java 微服务
《深入理解Spring》:Spring、Spring MVC与Spring Boot的深度解析
Spring Framework是Java生态的基石,提供IoC、AOP等核心功能;Spring MVC基于其构建,实现Web层MVC架构;Spring Boot则通过自动配置和内嵌服务器,极大简化了开发与部署。三者层层演进,Spring Boot并非替代,而是对前者的高效封装与增强,适用于微服务与快速开发,而深入理解Spring Framework有助于更好驾驭整体技术栈。
|
6月前
|
XML Java 应用服务中间件
【SpringBoot(一)】Spring的认知、容器功能讲解与自动装配原理的入门,带你熟悉Springboot中基本的注解使用
SpringBoot专栏开篇第一章,讲述认识SpringBoot、Bean容器功能的讲解、自动装配原理的入门,还有其他常用的Springboot注解!如果想要了解SpringBoot,那么就进来看看吧!
675 2
|
7月前
|
人工智能 Java 机器人
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
Spring AI Alibaba集成Ollama,基于Java构建本地大模型应用,支持流式对话、knife4j接口可视化,实现高隐私、免API密钥的离线AI服务。
6087 2
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
存储 JSON Java
808 0
|
7月前
|
人工智能 Java 开发者
【Spring】原理解析:Spring Boot 自动配置
Spring Boot通过“约定优于配置”的设计理念,自动检测项目依赖并根据这些依赖自动装配相应的Bean,从而解放开发者从繁琐的配置工作中解脱出来,专注于业务逻辑实现。
2458 0
|
6月前
|
Java 测试技术 数据库连接
【SpringBoot(四)】还不懂文件上传?JUnit使用?本文带你了解SpringBoot的文件上传、异常处理、组件注入等知识!并且带你领悟JUnit单元测试的使用!
Spring专栏第四章,本文带你上手 SpringBoot 的文件上传、异常处理、组件注入等功能 并且为你演示Junit5的基础上手体验
1068 3
|
6月前
|
JavaScript Java Maven
【SpringBoot(二)】带你认识Yaml配置文件类型、SpringMVC的资源访问路径 和 静态资源配置的原理!
SpringBoot专栏第二章,从本章开始正式进入SpringBoot的WEB阶段开发,本章先带你认识yaml配置文件和资源的路径配置原理,以方便在后面的文章中打下基础
545 4
|
9月前
|
缓存 JSON 前端开发
第07课:Spring Boot集成Thymeleaf模板引擎
第07课:Spring Boot集成Thymeleaf模板引擎
798 0
第07课:Spring Boot集成Thymeleaf模板引擎