Java SpringBoot启动指定profile的8种方式详解

目录
  • 配置文件中设置
  • 命令行设置
  • IDEA中设置
    • 1、program arguments程序参数
    • 2、VM options虚拟机参数
    • 3、Active profiles 参数
  • 遇到的问题
  • 总结

配置文件中设置

通常在公司级别的项目中,我们可能会写多个application- dev/prod.yml ,然后我们通常会在application.yml配置文件中写入

spring:
  profiles:
    active: dev

这里会指定激活的profile是application- dev.yml

注意:application.yml中类似Java中的父类,其他application- dev/prod.yml会继承这个文件,可以进行重写,没有进行重写的属性我们也是能直接读取的,比如application.yml定义了一个my.name属性,然后我们激活的是application- dev.yml,但是我们并没有在文件中定义这个属性,我们在程序中还是能够读取的,这里可以和Java的父子类继承重写对比

my:
  name: apple

注意这里可能会涉及到springboot读取配置文件的优先级问题,可参考文章:SpringBoot - 配置文件加载位置与优先级

命令行设置

1、Maven启动指定Profile通过-P,如mvn spring-boot:run -Ptest,但这是Maven的Profile。

2、如果要指定spring-boot的spring.profiles.active,则必须使用mvn spring-boot:run -Drun.profiles=test

3、如果使用命令行直接运行jar文件,则使用java -jar -Dspring.profiles.active=test demo-0.0.1-SNAPSHOT.jar

4、如果使用开发工具,运行Application.java文件启动,则增加参数--spring.profiles.active=test

IDEA中设置

1、program arguments程序参数

在Run/Debug Configurations中配置-Dspring.profiles.active=dev 优先级比配置文件高

2、VM options虚拟机参数

在Run/Debug Configurations中配置-Dspring.profiles.active=dev 优先级比配置文件高

3、Active profiles 参数

指定dev即可

遇到的问题

在公司项目中,我下载了一个其他环境的application-ft3.yml,但是没有放入resources文件夹下面,是通过IDEA中Run/Debug Configurations中配置读取我自己在外部的路径,但是由于我这个配置文件中有配置另外一个resources下面的i18n配置文件,程序中也要读取这个i18n下面的文件,我这个application-ft3.yml的文件路径和i18n下面的文件的相对路径就对不上了,导致读取为空!!!

解决办法: 将这个application-ft3.yml放入resources目录下即可解决!所以为了避免出现类似问题,我还是推荐把配置文件放入resource下面!!!

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

时间: 2021-09-12

springboot yml中profiles的巧妙用法(小白必看多环境配置)

遥想当年我还是个小白的时候,就只是写写demo,也就在一套环境上跑跑,真正当实战的时候,除了你本地环境,还有开发环境,测试环境,生产环境(上线)等等. 如果你不知道用这个profiles,那么这么多套环境,用一种老古董的写法就是这样,用哪个环境就把其他环境注释掉! spring: datasource: username: root #dev password: 123456 #dev #username: root2 #test #password: 456789 #test ... 这还只2

SpringBoot 如何根据不同profile选择不同配置

SpringBoot 根据不同profile选择不同配置 附上pom的 profiles配置 <build> <finalName>${project.artifactId}</finalName> <resources> <resource> <directory>src/main/resources/</directory> <filtering>true</filtering> </re

SpringBoot配置Profile实现多环境支持

前些天,有一个需求要用SpringBoot的多环境,当时没有系统学习springboot ,所以在网上找来找去的找到了一个解决方案,并写了一篇文章用来记录---(springBoot项目如何启动多个实例),但是那篇文章介绍的并不全面.刚好今天学习了springboot的多环境配置,于是趁着刚学习完,拿这篇全面的讲解多环境配置,同时也用来复习巩固. Profile 1.多Profile文件 我们在主配置文件编写的时候,文件名可以是 application-{profile}.yml或者applic

springboot获取profile的操作

目录 springboot获取profile 通过代码获取profile 通过注解的方式来获取Profile spring profile的基本使用 Spring profile在我们系统中的使用非常简单 我们的问题出在哪里呢? springboot获取profile 通过代码获取profile @Component public class ProfileUtils implements ApplicationContextAware { private static ApplicationC

SpringBoot启动指定profile的多种方式

配置文件中设置 通常在公司级别的项目中,我们可能会写多个application- dev/prod.yml ,然后我们通常会在application.yml配置文件中写入 spring: profiles: active: dev 这里会指定激活的profile是application- dev.yml 注意:application.yml中类似Java中的父类,其他application- dev/prod.yml会继承这个文件,可以进行重写,没有进行重写的属性我们也是能直接读取的,比如app

SpringBoot 多Profile使用与切换方式

Spring中Profile对不同环境提供不同配置功能的支持,可以通过激活.指定参数等方式快速切换环境. 文件名格式:application-{profile}.properties 可以建立多个properties(yaml)文件来不断的切换 application-dev.properties server.port=8082 application-prod.properties server.port=8083 application.properties server.port=808

SpringBoot激活profiles的几种方式

多环境是最常见的配置隔离方式之一,可以根据不同的运行环境提供不同的配置信息来应对不同的业务场景,在SpringBoot内支持了多种配置隔离的方式,可以激活单个或者多个配置文件. 激活Profiles的方式 激活的profiles要在项目内创建对应的配置文件,格式为application-{profile}.yml. 命令行方式 命令行方式是一种外部配置的方式,在执行java -jar命令时可以通过--spring.profiles.active=test的方式进行激活指定的profiles列表.

springboot多数据源配置及切换的示例代码详解

注:本文的多数据源配置及切换的实现方法是,在框架中封装,具体项目中配置及使用,也适用于多模块项目 配置文件数据源读取 通过springboot的Envioment和Binder对象进行读取,无需手动声明DataSource的Bean yml数据源配置格式如下: spring: datasource: master: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver url:

Jquery幻灯片特效代码分享--打开页面随机选择切换方式(3)

这篇文章主要介绍了jQuery实现幻灯片焦点图,可实现非常炫目时尚的幻灯片效果,非常具有实用价值,基本能满足你在网页上使用幻灯片(焦点图)效果,需要的朋友可以参考下 幻灯片效果描述:与前两节不同的是,这款特效可以打开页面随机选择切换方式(方向)   运行效果截图如下: 具体代码如下 <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <

全面解析标签页的切换方式

标签页的切换方式如下所示: 1.控制tab的显示与隐藏 2.tab不切换,数据加载 控制tab的显示与隐藏 前端脚本: 1.jquery实现: $(function(){ $(".sdkj-tabs li").click(function() { $(this).addClass("on").siblings().removeClass("on"); var index=$(".sdkj-tabs li").index(thi

详解springboot整合Listener的两种方式

1.通过注解 编写启动类 package cn.bl; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.ServletComponentScan; @SpringBootApplication @ServletCompo

详解SpringBoot工程的三种搭建方式

SpringBoot的主要目的是简化配置文件,通过少量配置即可运行Java程序,其强大的自动配置功能帮助开发者轻松实现配置装配,通过引入SpringBoot的 starter 就能实现想要的功能,不需要额外的配置. 目前SpringBoot工程有三种搭建方式: 通过Spring Initializr创建 通过IDEA创建工程 手动创建工程 官方生成工具 Spring团队提供一个非常方便的网页用于生成SpringBoot工程,打开浏览器进入Spring Initializr: 工程生成参数列表:

关于springboot 配置文件中属性变量引用方式@@解析

这种属性应用方式是 field_name=@field_value@. 两个@符号是springboot为替代${}属性占位符产生,原因是${}会被maven处理,所以应该是起不到引用变量的作用. @@方式可以引用springboot非默认配置文件(即其他配置文件)中的变量: springboot默认配置文件是 src/main/resources/application.properties 补充知识:springboot项目使用@Value注解获取配置文件中的配置信息 application

nginx负载均衡配置,宕机自动切换方式

严格来说,nginx自带是没有针对负载均衡后端节点的健康检查的,但是可以通过默认自带的ngx_http_proxy_module模块和ngx_http_upstream_module模块中的相关指令来完成当后端节点出现故障时,自动切换到健康节点来提供访问. 下面列出这两个模块中相关的指令: 语法: proxy_connect_timeout time; 默认值: proxy_connect_timeout 60s; 设置与后端服务器建立连接的超时时间.应该注意这个超时一般不可能大于75秒. 语法

Django使用Profile扩展User模块方式

首先创建Profile应用 python manage.py startapp profiles profiles/models.py # -*- coding: utf-8 -*- from django.db import models from django.contrib.auth.models import User from django.db.models.signals import post_save class UserProfile(models.Model): user

浅谈SpringBoot主流读取配置文件三种方式

读取配置SpringBoot配置文件三种方式 一.利用Bean注解中的Value(${})注解 @Data @Component public class ApplicationProperty { @Value("${application.name}") private String name; } 该方式可以自动读取当前配置文件appliation.yml  或者application.properties中的配置值 区别在于读取yml文件时候支持中文编码,peoperties需