SpringBoot之如何指定配置文件启动
作者:luffylv 发布时间:2023-11-17 15:17:48
一、问题描述
上周不是搭了个SpringBoot整合sharding-jdbc分库分表的架子么,组里老哥不让我把开发环境的配置文件放到resource根目录下。
要放到类似config/local/dev目录下。
如下图:
解决该问题时还是遇到了一些问题的,记录如下。
二、 SpringBoot如何指定配置文件启动
SpringBoot项目可以配置多个配置文件,项目在不同的环境运行时可以指定其对应的配置文件。
现以dev、beta两个环境为例,具体步骤如下:
1、pom.xml中配置
在项目的根pom.xml文件中添加以下配置
<profiles>
<!-- dev环境 -->
<profile>
<id>local-dev</id>
<properties>
<env>dev</env>
</properties>
</profile>
<!-- beta环境 -->
<profile>
<id>local-beta</id>
<properties>
<env>beta</env>
</properties>
</profile>
添加完后可以在右侧Maven Projects->Profiles中看到新加的配置,如下图:
local-nexus是新建项目时就有的。
2、配置配置文件
2.1、配置application.properties
根application.properties配置文件中可以配置所有环境共用的一些配置,其配置如下:
其中spring.profiles.active
是指定使用哪个配置文件,@evn@
是使用maven的变量,即取上一步中配置的<env>
的值。此处不配置服务端口,默认是8080。
2.2、配置beta环境的配置文件
文件名为application-XXX.properties。此处XXX必须为1中配置的beta环境的<env>
的值,否则该配置文件不生效。
application-beta.properties是beta环境的配置文件,配置如下图。
2.3、配置开发环境的配置文件
文件名为application-XXX.properties。此处XXX必须为1中配置的dev环境的<env>
的值,否则该配置文件不生效。
application-dev.properties是dev环境的配置文件,配置如下图。
3、验证
3.1指定beta配置文件启动
若指定beta配置文件启动,则服务端口应该是8082。
选择beta启动。
查看日志,服务确实启用了8082端口,说明使用的是application-beta.properties配置文件。
3.2指定dev配置文件启动
若指定dev配置文件启动,则服务端口应该是8083。
选择dev启动。
查看日志,服务确实启用了8083端口,说明使用的是application-dev.properties配置文件。
三、分析问题
来源:https://blog.csdn.net/m0_47503416/article/details/113144963


猜你喜欢
- 实践过程效果代码public partial class Form1 : Form{ public Form1()
- 前言: SQLite简介:是一款轻型的数据库,是遵守AC
- String:字符串类型1、构造函数。String() :构造一个空字符串对象。String(byte[] bytes) :通过byte数组
- 本文实例讲述了C#泛型委托的用法。分享给大家供大家参考。具体分析如下:冒泡排序大家都知道,例如一个整形数组,可以用冒泡排序来使它按从小到大的
- 前言现在的项目一般是拆分成一个个独立的模块,当在其他项目中想要使用独立出来的这些模块,只需要在其pom.xml使用<dependenc
- 本文所要介绍的简易天气App主要用RxAndroid、MVP、Retrofit实现,首先来看看效果:主页内容:右侧栏天气列表:左侧栏城市列表
- Mybatis简介MyBatis的前身叫iBatis,本是apache的一个开源项目, 2010年这个项目由apache software
- 代码:public DataTable TXTToDataTable(string fileName, string columnName)
- 直接调用Math里面的random即可,简单方便int i = (int)(Math.random()*100+1);
- 本文实例通过Java的Zip输入输出流实现压缩和解压文件,前一部分代码实现获取文件路径,压缩文件名的更改等,具体如下:package com
- 本文实例为大家分享了java使用字符画一个海绵宝宝的具体代码,供大家参考,具体内容如下用字符画一个海绵宝宝用" &ldqu
- 场景做一个消息中心,专门负责发送消息。消息分为几种渠道,包括手机通知(Push)、短信(SMS)、邮件(Email),Websocket等渠
- Java中的try-catch-finally异常处理一、异常处理异常(Exception):是在运行发生的不正常情况。原始异常处理:if(
- 前言开发中常用到主从数据库来提高系统的性能。怎么样才能方便的实现主从读写分离呢?近日工作任务较轻,有空学习学习技术,遂来研究如果实现读写分离
- 根据狂神的视频做的,然后自己优化了一些bug,比如新生成食物的时候不会生成在蛇的身体上,再新增长身体的时候不会在左上角出现一个绿色的方块以及
- Android 获取屏幕尺寸实例代码实现代码:/** * <supports-screens * android:smallScr
- java中不定长参数的使用方法不定长参数方法的语法如下:返回值 方法名(参数类型...参数名称)在参数列表中使用“...”形式定义不定长参数
- 前言quarkus号称超音速亚原子JAVA为Graalvm量身定制的java堆栈,是否名副其实呢?下面就来看看真实情况如何。动手前先简单介绍
- 多态概述多态概念:所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定
- JAVA并发编程有界缓存的实现1、有界缓存的基类package cn.xf.cp.ch14;/** * *功能:有界缓存实现基类 *时间: