IDEA下SpringBoot指定环境、配置文件启动

1、idea下的SpringBoot启动:指定配置文件

Springboot项目有如下配置文件

主配置文件application.yml,

测试环境:application-test.yml

生产环境:application-pro.yml

开发环境:application-dev.yml

1.1.配置文件指定环境

bash 复制代码
在主配置文件里指定实际使用的配置文件
spring:
    profiles:
        active: dev

1.2.项目已打包,运行配置

需要确保项目已经打成jar包: springboot-demo.jar,指定项目内其它配置文件application-dev.yml启动项目

bash 复制代码
java -jar springboot-demo.jar --spring.profiles.active=dev

# 另一种启动命令(上一种启命令失效时, 用以下这种, 或就以这种)

java -jar -Dspring.profiles.active=dev springboot-demo.jar

1.3.Linux服务器上启动基于(三)的springboot项目

jar运行方式

bash 复制代码
java -jar xx.jar --spring.profiles.active=dev

示例

bash 复制代码
java -jar -Dspring.profiles.active=test springboot-demo.jar

不显示日志打印的启动

bash 复制代码
nohup java -jar -Dspring.profiles.active=test springboot-demo.jar &

2.开发过程中idea指定某种环境下的配置文件启动项目

方法1:多个配置文件,启动项目的时候,需要修改右上角的配置信息,按下图操作

选择 Configuration ---》Environment ---》Program arguments(main方法启动方式:优先级高于在配置文件里面的激活的)

// 在IDE Arguments里面添加
--spring.profiles.active=dev


添加配置

配置启动参数

bash 复制代码
--spring.profiles.active=test

**方法3:**选择 Configuration ------》Environment ------》VM options(JVM启动方式),输入如下代码:

bash 复制代码
-Dspring.profiles.active=dev

3. -Dspring.profiles.active=dev 与 --spring.profiles.active=dev 选哪个?

使用 -D 参数设置系统属性和使用 -- 参数设置命令行参数之间的主要差异在于,使用 -D 参数设置系统属性可以用于任何 Java 应用程序 ,并且可以设置任何系统属性,而*++使用 -- 参数设置命令行参数的方式是 Spring Boot 特有的++*,只能用于设置 Spring Boot 应用程序的配置文件。

此外,使用 -D 参数设置系统属性时,需要将属性名和属性值用等号 = 连接起来,而使用 -- 参数设置命令行参数时,则需要在属性名前加上 -- 前缀。
使用 -D 参数设置系统属性和使用 -- 参数设置命令行参数都是设置 Spring Boot 应用程序的配置文件的有效方法。你可以根据实际需要选择其中一种方式来设置环境变量。

  • 使用 -D 参数设置的系统属性可以在程序运行时动态改变;
  • 使用 -- 参数设置的命令行参数则不能动态改变;
  • 在Spring-Boot 项目启动时,推荐使用 -- ,如 --spring.profiles.active=dev
相关推荐
树码小子1 分钟前
图书管理系统(5)强制登陆(后端实现)
spring boot·mybatis·图书管理系统
丹牛Daniel6 分钟前
Java解决HV000183: Unable to initialize ‘javax.el.ExpressionFactory‘
java·开发语言·spring boot·tomcat·intellij-idea·个人开发
消失的旧时光-194324 分钟前
智能指针(三):实现篇 —— shared_ptr 的内部设计与引用计数机制
java·c++·c·shared_ptr
芒克芒克28 分钟前
深入浅出CopyOnWriteArrayList
java
wuqingshun31415938 分钟前
说一下java的反射机制
java·开发语言·jvm
A懿轩A42 分钟前
【Java 基础编程】Java 异常处理保姆级教程:try-catch-finally、throw/throws、自定义异常
java·开发语言·python
极客先躯1 小时前
高级java每日一道面试题-2025年7月14日-基础篇[LangChain4j]-如何集成开源模型(如 Llama、Mistral)?需要什么基础设施?
java·langchain·存储·计算资源·模型服务框架·网络 / 协议·java 依赖
黎雁·泠崖1 小时前
Java 包装类:基本类型与引用类型的桥梁详解
java·开发语言
盖头盖2 小时前
【Java反序列化基础】
java
极客先躯2 小时前
高级java每日一道面试题-2025年7月15日-基础篇[LangChain4j]-如何集成国产大模型(如通义千问、文心一言、智谱 AI)?
java·人工智能·langchain·文心一言·异常处理·密钥管理·参数调优