「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

相关文章
|
25天前
|
Java 测试技术 开发者
springboot学习四:Spring Boot profile多环境配置、devtools热部署
这篇文章主要介绍了如何在Spring Boot中进行多环境配置以及如何整合DevTools实现热部署,以提高开发效率。
51 2
|
25天前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
47 1
|
25天前
|
Java API Spring
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中拦截器的入门教程和实战项目场景实现的详细指南。
17 0
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
|
25天前
|
Java API Spring
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中过滤器的基础知识和实战项目应用的教程。
21 0
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
|
25天前
|
Java Spring
springboot 学习十一:Spring Boot 优雅的集成 Lombok
这篇文章是关于如何在Spring Boot项目中集成Lombok,以简化JavaBean的编写,避免冗余代码,并提供了相关的配置步骤和常用注解的介绍。
75 0
|
2月前
|
SQL 监控 druid
springboot-druid数据源的配置方式及配置后台监控-自定义和导入stater(推荐-简单方便使用)两种方式配置druid数据源
这篇文章介绍了如何在Spring Boot项目中配置和监控Druid数据源,包括自定义配置和使用Spring Boot Starter两种方法。
|
27天前
|
人工智能 自然语言处理 前端开发
SpringBoot + 通义千问 + 自定义React组件:支持EventStream数据解析的技术实践
【10月更文挑战第7天】在现代Web开发中,集成多种技术栈以实现复杂的功能需求已成为常态。本文将详细介绍如何使用SpringBoot作为后端框架,结合阿里巴巴的通义千问(一个强大的自然语言处理服务),并通过自定义React组件来支持服务器发送事件(SSE, Server-Sent Events)的EventStream数据解析。这一组合不仅能够实现高效的实时通信,还能利用AI技术提升用户体验。
139 2
|
3月前
|
缓存 Java Maven
Java本地高性能缓存实践问题之SpringBoot中引入Caffeine作为缓存库的问题如何解决
Java本地高性能缓存实践问题之SpringBoot中引入Caffeine作为缓存库的问题如何解决
|
27天前
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
45 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
4月前
|
Java 测试技术 数据库
Spring Boot中的项目属性配置
本节课主要讲解了 Spring Boot 中如何在业务代码中读取相关配置,包括单一配置和多个配置项,在微服务中,这种情况非常常见,往往会有很多其他微服务需要调用,所以封装一个配置类来接收这些配置是个很好的处理方式。除此之外,例如数据库相关的连接参数等等,也可以放到一个配置类中,其他遇到类似的场景,都可以这么处理。最后介绍了开发环境和生产环境配置的快速切换方式,省去了项目部署时,诸多配置信息的修改。