SpringBoot指定多套配置文件环境

简介: SpringBoot指定多套配置文件环境

开发阶段

SpringBoot本身对项目的多环境配置已经做了非常友好的支持了,我们只需按照SpringBoot的约定去做就好。首先我们都知道,SpringBoot的默认配置文件是application.yml

配置多个环境只需要将默认配置文件复制几份,然后将文件名按照application-环境名.yml改为相应的名称,比如:

  • 测试环境:application-dev.yml
  • 生成环境:application-prod.yml

我们可以将多个环境相同的配置写在application.yml默认配置文件中,然后不同环境的配置写在各自的文件中,比如各种服务的连接信息等。

编辑好配置文件之后,我们需要在默认的配置文件中声明让哪种环境生效

# 激活指定配置文件
spring:
  profiles:
    active: prod

注意这里的名称只需要填写application-环境名.yml配置文件的环境名部分即可。

举例

首先我创建了一个测试项目,创建了默认的配置文件application.yml。然后我也创建了application-dev.ymlapplication-prod.yml,并做了以下配置

application.yml
server:
  servlet:
    context-path: /moti-graph
  port: 8081
# 激活指定配置文件
spring:
  profiles:
    active: prod
application-dev.yml
spring:
  neo4j:
    uri: bolt://localhost:7687
    authentication:
      username: neo4j
      password: neo4j
application-prod.yml
spring:
  neo4j:
    uri: bolt://47.106.183.193:7687
    authentication:
      username: neo4j
      password: 12345

可以看到,我这里指明生效的是application-prod.yml,之后我们启动项目,在控制台就可以看到这句话

如果配置生效的是其他环境的配置,那么在这里也会相应的打印出环境名称

发布阶段

当项目需要打包发布到服务器上的时候,打包的结果首先默认会根据你在application.yml声明生效的环境,所以打包发布的时候可以先确认一下是否将默认配置文件中的环境配置为生产环境。

使用Maven打包,默认会将配置文件打包到jar包内部。可以直接使用java -jar XXX.jar的方式启动项目

如果想要切换环境,可以直接在命令中添加参数--spring.profiles.active=环境名

java -jar --spring.profiles.active=dev moti-graph-0.0.1-SNAPSHOT.jar

当然也可以在启动项目的时候指定外部的配置文件,同样需要在命令中添加参数即可

我在项目外部创建了一个配置文件如下

server:
  servlet:
    context-path: /
  port: 8888

使用下面的命令启动项目

java -jar moti-graph-0.0.1-SNAPSHOT.jar --spring.config.location=/Users/moti/Desktop/application.yml

当然,项目真正发布的时候肯定不是直接使用这种简单粗暴的java -jar方式,一般都会有专门的人写shell脚本,然后通过脚本来实现启动、停止、重启等操作。

相关文章
|
5月前
|
Java Spring
Spring boot 运行服务jar外配置配置文件方式总结
Spring boot 运行服务jar外配置配置文件方式总结
974 0
|
1月前
|
Java 数据库连接 数据库
springboot启动配置文件-bootstrap.yml常用基本配置
以上是一些常用的基本配置项,在实际应用中可能会根据需求有所变化。通过合理配置 `bootstrap.yml`文件,可以确保应用程序在启动阶段加载正确的配置,并顺利启动运行。
191 2
|
1月前
|
Java Spring 容器
SpringBoot读取配置文件的6种方式,包括:通过Environment、@PropertySource、@ConfigurationProperties、@Value读取配置信息
SpringBoot读取配置文件的6种方式,包括:通过Environment、@PropertySource、@ConfigurationProperties、@Value读取配置信息
131 3
|
2月前
|
Java 测试技术 Spring
springboot学习三:Spring Boot 配置文件语法、静态工具类读取配置文件、静态工具类读取配置文件
这篇文章介绍了Spring Boot中配置文件的语法、如何读取配置文件以及如何通过静态工具类读取配置文件。
186 0
springboot学习三:Spring Boot 配置文件语法、静态工具类读取配置文件、静态工具类读取配置文件
|
3月前
|
消息中间件 NoSQL 安全
(转)Spring Boot加载 不同位置的 application.properties配置文件顺序规则
这篇文章介绍了Spring Boot加载配置文件的顺序规则,包括不同位置的application.properties文件的加载优先级,以及如何通过命令行参数或环境变量来指定配置文件的名称和位置。
115 0
|
4月前
|
Java 测试技术 Spring
Java SpringBoot 加载 yml 配置文件中字典项
Java SpringBoot 加载 yml 配置文件中字典项
51 0
|
6月前
|
运维 安全 Java
SpringBoot运维篇(打包,多环境,日志)
SpringBoot运维篇(打包,多环境,日志)
|
5月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的环境保护生活App附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的环境保护生活App附带文章源码部署视频讲解等
71 0
|
5月前
|
Java Spring
解析Spring Boot中的配置文件与外部化配置
解析Spring Boot中的配置文件与外部化配置
|
5月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue的营商环境行动计划管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue的营商环境行动计划管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
30 0