SpringBoot多环境配置以及热部署

多环境配置

使用多环境配置的原因:

在SpringBoot项目的生命周期中,存在不同的环境,例如开发时的环境,测试时的环境,交付使用后的生产环境,每种环境的配置可能不一样,这种情况下可以通过多环境配置实现不同环境的快速切换。

实现多环境配置的基本思路:

针对不同环境制定不同名称的配置文件,里面放置不同环境下所需的配置项,然后在主配置文件中选择其中一个配置文件作为当前使用的配置。

步骤:

1.创建SpringBoot项目,添加spring-boot-starter-web依赖

2.创建多个配置文件,每个配置文件的格式:application-{profile}.yml,其中{profile}是对应环境的标识

补充:常用的配置文件:

                开发环境:application-dev.yml

                测试环境:application-test.yml

                生产环境:application-prod.yml

#application-dev.yml配置文件
db:url: mysql://192.168.1.10:3306/db1user: devpassword: 123#application-test.yml配置文件
db:url: sqlserver://192.168.1.30:8002/db3user: testpassword: 123456#application-prod.yml配置文件
db:url: oracle://192.168.1.20:9000/db2user: prodpassword: 111

3.选择环境:将application.properties配置文件修改为application.yml,使用以下代码选择伤处的一个环境(active为profile所进行的命名)

spring:profiles:#active中的值为对应环境的标识active:dev

4.创建控制器TestController进行测试,测试不同环境时加载不同的数据库连接信息

package com.example.chap1.controller;import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class TestController {@Value("${db.url}")private String url;@Value("${db.user}")private String userName1;@Value("${db.password}")private String password;//测试开发环境@GetMapping("/test")public String test(){String str="<h1>当前环境连接的数据库URL:"+url+"</h1>";str+="<h1>数据库用户:"+userName1+"</h1>";str+="<h1>数据库密码:"+password+"</h1>";return str;}
}

热部署

使用热部署的原因:

在项目开发过程中,如果代码修改了,需要进行重新启动项目后修改才可以生效,但使用热部署则无须重新是手动启动应用程序

实现热部署:

1.在IDEA中进行自动构建项目的配置,选择File->Settings->Build,Execution,Deployment->Complier,然后勾选右侧部分的Build project automatically

2.在pom.xml文件中添加devtools依赖

  <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency>

3.在application.yml文件中添加配置

spring:devtools:restarts:enabled:true

所有步骤完成后重新启动一次项目,以后当程序代码有修改就会触发热部署,无需手动启动程序就会有效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/607656.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

百元蓝牙耳机推荐有哪些?百元平价的开放式蓝牙耳机推荐

无论是通勤、运动还是休闲时刻&#xff0c;一款好的蓝牙耳机都能为我们带来优质的听觉体验&#xff0c;特别是在预算有限的情况下&#xff0c;如何选择一款性价比高的百元蓝牙耳机变得尤为重要&#xff0c;那么我就根据我的使用经验给大家伙推荐几款百元平价的开放式蓝牙耳机&a…

11.文件和异常

文件和异常 实际开发中常常会遇到对数据进行持久化操作的场景&#xff0c;而实现数据持久化最直接简单的方式就是将数据保存到文件中。说到“文件”这个词&#xff0c;可能需要先科普一下关于文件系统的知识&#xff0c;但是这里我们并不浪费笔墨介绍这个概念&#xff0c;请大…

轻松搞定!微信快速导出好友数据备份

作为一款集聊天、朋友圈、支付等功能于一身的应用&#xff0c;微信中存储了我们与朋友、家人和同事以及客户之间的重要沟通记录和联系方式。然而&#xff0c;如果不小心丢失了手机或者账号出现问题&#xff0c;这些宝贵的数据可能会永远丢失。为了避免这种情况的发生&#xff0…

【HarmonyOS4.0】第三篇-类web开发模式

【HarmonyOS4.0】第三篇-类web开发模式 一、鸿蒙介绍 课程核心 为什么我们需要学习鸿蒙&#xff1f; 哪些人适合直接转鸿蒙&#xff1f; 鸿蒙系统优势是什么&#xff1f; 课程内容 (1)为什么要学习鸿蒙 从行情出发&#xff1a; 美国商务部长访问中国&#xff0c;2023年…

工程部设备巡检管理的必要性!使用智能化设备巡检系统有什么好处?

随着科技的发展&#xff0c;智能化管理已逐渐成为企业提升效率、确保设备运行安全的重要手段。工程部作为企业内维护设施运行的关键部门&#xff0c;其巡检工作的重要性不言而喻。本文将探讨如何利用智能化技术优化工程部的设备巡检工作&#xff0c;以确保设备的及时有效维护。…

华媒舍:溯源媒体发稿,助推品牌快速突破

在当今残酷竞争的市场环境中&#xff0c;品牌的快速突破变成了公司发展的关键之一。溯源新闻媒体发稿作为一项强有力营销推广方式&#xff0c;为品牌快速建立名气、提升口碑品牌形象提供了重要适用。下面我们就详细介绍如何给品牌订制溯源新闻媒体发稿对策&#xff0c;并探讨其…

*5.1 Global Memory Bandwidth

并行程序的执行速度可能因计算硬件的资源限制而有很大差异。虽然管理并行代码和硬件资源约束之间的交互对于在几乎所有并行编程模型中实现高性能很重要&#xff0c;但这是一种实用技能&#xff0c;最好通过为高性能设计的并行编程模型中的实践练习来学习。在本章中&#xff0c;…

Springboot3(一、lambda、::的应用)

文章目录 一、使用lambda简化实例创建1.语法&#xff1a;2.示例&#xff1a;3.Function包3.1 有入参&#xff0c;有返回值【多功能函数】3.2 有入参&#xff0c;无返回值【消费者】3.3 无入参&#xff0c;有返回值【提供者】3.4 无入参&#xff0c;无返回值 二、类::方法的使用…

如何彻底卸载Edge

要彻底卸载Edge浏览器&#xff0c;你可以按照以下几种方法操作&#xff1a; 方法一&#xff1a;使用控制面板 点击任务栏的“开始”按钮&#xff0c;打开“控制面板”。在控制面板中&#xff0c;选择“程序和功能”。在程序列表中找到Edge浏览器&#xff0c;右键点击它并选择…

web左侧伸缩菜单栏/导航栏

效果展示&#xff1a; 百度网盘链接下载全部资源&#xff1a; http://链接&#xff1a;https://pan.baidu.com/s/1ZnKdWxTH49JhqZ7Xd-cJIA?pwd4332 提取码&#xff1a;4332 html/JQuery代码&#xff1a; <!DOCTYPE html> <html lang"zh"> <head&g…

网络通信(11)-C#TCP服务端封装帮助类实例

本文使用Socket在C#语言环境下完成TCP服务端封装帮助类的实例。 实例完成的功能: 服务器能够连接多个客户端显示在列表中,实现实时刷新。 服务器接收客户端的字符串数据。 选中列表中的客户端发送字符串数据。 在VS中创建C# Winform项目,编辑界面,如下: UI文件 name…

Java中SpringBoot组件集成接入【MQTT中间件】

Java中SpringBoot组件集成接入【MQTT中间件】 1.MQTT介绍2.搭建MQTT服务器1.Windows2.Ubuntu3.Docker4.其他方式3.mqtt可视化客户端MQTTX及快速使用教程4.SpringBoot接入MQTT1、maven依赖2、MQTT配置3、MQTT组件具体代码1.定义通道名字2.消息发布器3.MQTT配置、生产者、消费者4…

.NET学习教程一——.net基础定义+VS常用设置

一、定义 .NET分为.NET平台和.NET框架。 .NET平台&#xff08;厨房&#xff09;.NET FrameWork 框架&#xff08;柴米油盐酱醋茶&#xff09; .NET平台&#xff08;中国移动联通平台&#xff09;.NET FrameWork 框架&#xff08;信号塔&#xff09; .NET平台基于.NET Fra…

强化学习的数学原理学习笔记 - 值函数近似(Value Function Approximation)

文章目录 概览&#xff1a;RL方法分类值函数近似&#xff08;Value function approximation&#xff09;Basic idea目标函数&#xff08;objective function&#xff09;优化算法&#xff08;optimization algorithm&#xff09; Sarsa / Q-learning with function approximati…

学生备考哪款护眼台灯好?2024五款知名品牌强力推荐

最近应后台小伙伴要求&#xff0c;给大家测评一些护眼台灯产品&#xff0c;毕竟现在的孩子近视人数真的非常多&#xff0c;每五个孩子戴眼镜的就有三个了&#xff0c;日常学习中保护视力&#xff0c;由于很多学习时间都是在晚上&#xff0c;台灯成为了为陪伴学习不可或缺的搭档…

深度学习:图神经网络——在推荐系统中的应用

PinSage是工业界应用图神经网络完成推荐任务的第一个成功案例&#xff0c;其从用户数据中构造图&#xff08;graph&#xff09;的方法和应对大规模图而采取的实现技巧都值得我们学习。PinSage被应用在图片推荐类Pinterest上。在Pinterest中&#xff0c;每个用户可以创建并命名图…

TikTok电商年度洞察:出海到底“卖什么”?各国多类目爆款洞察,迅速掌握市场领先优势

很多卖家在尝试出海时&#xff0c;常面临两大核心痛点&#xff1a;一是“卖什么”&#xff0c;即选择何种商品进行销售&#xff1b;二是“怎么卖”&#xff0c;即如何通过有效的营销策略将商品销售出去。TikTok主打的内容电商模式&#xff0c;通过短视频和直播等形式&#xff0…

StampedLock锁探究

该锁提供了三种模式的读写控制&#xff0c;当调用获取锁的系列函数时&#xff0c;会返回一个long型的变量&#xff0c;我们称之为戳记(stamp),这个戳记代表了锁的状态。 其中try系列获取锁的函数&#xff0c;当获取锁失败后会返回为0的stamp 值。 当调用释放锁和转换锁的方法…

汽车中的ECU、VCU、MCU、HCU

一、ECU是汽车电脑&#xff0c;刷汽车电脑可以提高动力&#xff0c;也可以减低动力&#xff0c;看需求。 简单原理如下。 1.汽车发动机运转由汽车电脑&#xff08;即ECU&#xff09;控制。 2.ECU控制发动机的进气量&#xff0c;喷油量&#xff0c;点火时间等&#xff0c;从而…

成功解决使用git clone下载失败的问题: fatal: 过早的文件结束符(EOF) fatal: index-pack 失败

一.使用 http 可能出现的问题和解决 1.问题描述 ~$ git clone https://github.com/oKermorgant/ecn_baxter_vs.git 正克隆到 ecn_baxter_vs... remote: Enumerating objects: 13, done. remote: Counting objects: 100% (13/13), done. remote: Compressing objects: 100% (…