当前位置: 首页 > news >正文

Spring Boot配置 application.yml,根据application.yml选择启动配置

在Spring Boot 中可以选择applicant.properties 作为配置文件,也可以通过在application.yml中进行配置,让Spring Boot根据你的选择进行加载启动配置文件。

这种配置方式,我们通常在实际开发中经常使用,主要为了发布版本和以及开发环境,本地环境,测试环境等不同环境使用不同的配置文件,这样就减少了我们经常去配置application.yml的相关具体配置,因为不同的配置文件里边的ip地址或者数据库的链接以及端口不同,干过开发的都知道,我们一般会将数据库的访问地址,账号,密码,Redis的访问地址等均放到application.yml文件中。

开始,我们在Spring Boot中创建一个启动类文件

@SpringBootApplication
public class Chapter12Application {public static void main(String[] args) {SpringApplication.run(Chapter12Application.class, args);}@RestControllerstatic class HelloController {//指定配置文件读取name并获得配置文件的值@Value("${name:}")private String name;//浏览器根据地址访问得到相关name@RequestMapping("/")public String index() {return name;}}
}

创建一个application.yml文件存放到src/resources,目录下:

# 默认激活dev配置,选择启动配置文件,实际上均采用active读取
spring:profiles:active: "test"---
# 指定的配置文件
spring:config:activate:on-profile: "dev"# 读取的name文件
name: dev.Miaow.Y.Hu.com
#启动端口号配置
server:port: 7745
---spring:config:activate:on-profile: "test"name: test.Miaow.Y.Hu.com
server:port: 7745
---spring:config:activate:on-profile: "prod"
server:port: 7745name: prod.Miaow.Y.Hu.com

Spring Boot 2.4 以后的配置

好,有了上边对application.yml的相关基础,接下来我们在一个application.yml进行相关配置,然后根据相关配置启动我们需要的配置文件,然后得到我们想要的name.

依旧是Spring Boot 的启动文件

@SpringBootApplication
public class Chapter13Application {public static void main(String[] args) {SpringApplication.run(Chapter13Application.class, args);}@Slf4j@RestControllerstatic class HelloController {@Value("${db:}")private String db;@Value("${mq:}")private String mq;@RequestMapping("/")public String index() {log.info("db:" + db);log.info("mq:" + mq);return db + "===" + mq;}}}

依旧是如此,我们可以在pom.xml先配置我们所需要的依赖:

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><scope>provided</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

接下来我们还是将重点放到我们的application.yml配置文件上:

# 2.4之前的配置
#spring:
#  profiles:
#    active: "dev"
#
#---
#spring.profiles: "dev"
#spring.profiles.include: "dev-db,dev-mq"
#
#---
#spring.profiles: "dev-db"
#
#db: dev-db.Miaow.Y.Hu.com
#
#---
#spring.profiles: "dev-mq"
#
#mq: dev-mq.Miaow.Y.Hu.com
#
#---#2.4之后的配置
# 默认激活dev配置
spring:profiles:# 更改指定的启动配置文件active: "dev" group:# 分组,只要你确定定义的别名满足条件,那么就适配"dev": "dev-db,dev-mq""prod": "prod-db,prod-mq"---
spring:config:activate:on-profile: "dev-db"db: dev-db.Miaow.Y.Hu.com---
spring:config:activate:on-profile: "dev-mq"mq: dev-mq.Miaow.Y.Hu.com---
spring:config:activate:on-profile: "prod-db"db: prod-db.Miaow.Y.Hu.com---
spring:config:activate:on-profile: "prod-mq"mq: prod-mq.Miaow.Y.Hu.com

由于我并未配置具体的端口号,故而系统将采用默认的端口号8080启动,其中我们通过端口号访问得到,因为我们默认采用dev进行启动,故而我们在浏览器上得到的就是dev开头的数据。

在这里插入图片描述
这是在浏览器打印的结果,在控制台我们也可以看到相关打印的结果:
在这里插入图片描述
同理,我们也可以利用application.yml的特性,来完成我们所需要的功能。
例如:

@RestController
public class HelloController {@Value("${com.Miaow.Y.Hu.from}")public String from;@RequestMapping("/hello")public String index() {return "Hello World";}@RequestMapping("/demo")public String didi(){System.out.println(from);return from;}
}

application.properties

com.Miaow.Y.Hu.from=miaow

在这里插入图片描述
在这里插入图片描述

相关文章:

Spring Boot配置 application.yml,根据application.yml选择启动配置

在Spring Boot 中可以选择applicant.properties 作为配置文件&#xff0c;也可以通过在application.yml中进行配置&#xff0c;让Spring Boot根据你的选择进行加载启动配置文件。 这种配置方式&#xff0c;我们通常在实际开发中经常使用&#xff0c;主要为了发布版本和以及开发…...

一文了解GC垃圾回收

一文了解GC垃圾回收 1 判断一个对象为垃圾对象的方法 引用计数法(弃用) 可达性分析算法 是否有指向GC root 的引用链&#xff0c;如果有&#xff0c;不是垃圾对象 ---->GC roo:即rt.jar包中内容 2 内存泄漏与内存溢出区别 泄漏&#xff1a;原本需要被回收的对象&#…...

触摸屏与施耐德PLC之间MODBUS无线通讯

一、 硬件连接 1、PLC通讯接口说明&#xff1a; 2、通讯电缆图&#xff1a; 二、PLC设置 1. 配置端口&#xff1a; 双击串行线路—弹出右侧设置窗口---设置串口通讯参数 2. 添加MODBUS协议。 ① 右击串口线路&#xff0c;选择添加设备&#xff1a; ② 选择现场总线&#xf…...

BOA服务器(一):简介

在嵌入式设备的管理与交互中&#xff0c;基于Web方式的应用成为目前的主流&#xff0c;这种程序结构也就是大家非常熟悉的B/S结构&#xff0c;即在嵌入式设备上运行一个支持脚本或CGI功能的Web服务器&#xff0c;能够生成动态页面&#xff0c;在用户端只需要通过Web浏览器就可以…...

最详细STM32,cubeMX 超声波测距

这篇文章将详细介绍 STM32使用 cubeMX驱动超声波测距 。 文章目录 前言一、超声波模块测距原理 &#xff1a; 二、cubeMX 配置三、实验程序总结 前言 实验材料&#xff1a;STM32F103C8T6开发板&#xff0c; HC-SR04 超声波模块。所需软件&#xff1a;keil5 &#xff0c; cubeM…...

Java实现连接SQL Server解决方案及代码

下面展示了连接SQL Server数据库的整个流程&#xff1a; 加载数据库驱动建立数据库连接执行SQL语句处理结果关闭连接 在连接之前&#xff0c;前提是确保数据库成功的下载&#xff0c;创建&#xff0c;配置好账号密码。 运行成功的代码&#xff1a; import java.sql.*;publi…...

如何用 JMeter 编写性能测试脚本?

Apache JMeter 应该是应用最广泛的性能测试工具。怎么用 JMeter 编写性能测试脚本&#xff1f; 1. 编写 HTTP 性能测试脚本 STEP 1. 添加 HTTP 请求 img STEP 2. 了解配置信息 HTTP 请求各项信息说明&#xff08;以 JMeter 5.1 为例&#xff09;。 如下图所示&#xff1a;…...

vue3+vite在线预览pdf

效果图 代码 <template><div class"pdf-preview"><div class"pdf-wrap"><vue-pdf-embed :source"state.source" :style"scale" class"vue-pdf-embed" :page"state.pageNum" /></div…...

Python深度学习实战-基于Sequential方法搭建BP神经网络实现分类任务(附源码和实现效果)

实现功能 第一步&#xff1a;导入模块&#xff1a;import tensorflow as tf 第二步&#xff1a;制定输入网络的训练集和测试集 第三步&#xff1a;搭建网络结构&#xff1a;tf.keras.models.Sequential() 第四步&#xff1a;配置训练方法&#xff1a;model.compile()&#x…...

【前端】Webpack5中Html和CSS的压缩打包

1.Webpack5简介 1.1.Webpack简介 &#xff08;1&#xff09;webpack的发展历程 2012.3—webpack&#xff08;问世&#xff09; 2014.2—webpack1 2016.12—webpack2 2017.6—webpack3 2018.2—webpack4 2020.10—webpack5&#xff08;要求node版本10.13&#xff09; &a…...

postman接收后端返回的文件流并自动下载

不要点send&#xff0c;点send and download&#xff0c;postman接受完文件流会弹出文件保存框让你选择保存路径...

谈谈Net-SNMP软件

Net-SNMP是一个开源的SNMP软件套件&#xff0c;它提供了SNMP代理&#xff08;snmpd&#xff09;和SNMP工具&#xff08;如snmpget、snmpwalk等&#xff09;&#xff0c;可以用于监控和管理网络设备。 Net-SNMP最初是从UC Davis的SNMP软件衍生而来&#xff0c;现在已经成为广泛…...

前端对普通数字数组排序示例

1. arr.sort(fn) // 升序排序arr.sort((a, b) > a - b);// 降序排序arr.sort((a, b) > b - a); 2. 冒泡排序 冒泡排序-升序原理: eg: [1, 6, 7, 9, 10, 3, 4, 5, 2] 1) 先遍历第一遍数组, 前一个数字大于后一个数字, 就交换位置, 最后最大值10放在数组的最后, 此时是…...

SQL server中:常见问题汇总(如:修改表时不允许修改表结构、将截断字符串或二进制数据等)

SQL server中&#xff1a;常见问题汇总 1.修改表时提示&#xff1a;不允许修改表结构步骤图例注意 2.将截断字符串或二进制数据。3.在将 varchar 值 null 转换成数据类型 int 时失败。4.插入insert 、更新update、删除drop数据失败&#xff0c;主外键FOREIGN KEY 冲突5.列不允许…...

无线通信中CSI的含义

在无线通信中&#xff0c;CSI代表"Channel State Information"&#xff0c;即信道状态信息。CSI是一种关键的信息&#xff0c;用于评估和描述通信信道的特性&#xff0c;以帮助发送器和接收器在通信过程中做出智能的调整和决策。 CSI包括有关通信信道的以下信息&…...

如何一键核实验证身份证的真伪?

据报道&#xff0c;今年10月10日&#xff0c;广东省佛山市朱某因生活琐事与丈夫发生争吵&#xff0c;民警发现她的身份证有问题。 在民警打算进一步了解情况&#xff0c;查看夫妻二人的身份证件时&#xff0c;朱某的身份证引起了民警的注意。这张身份证表面很光滑&#xff0c;…...

冒泡排序:了解原理与实现

目录 原理 实现 性能分析 结论 冒泡排序&#xff08;Bubble Sort&#xff09;是一种简单但效率较低的排序算法。它重复地比较相邻的元素并交换位置&#xff0c;直到整个序列有序为止。虽然冒泡排序的时间复杂度较高&#xff0c;但在小规模数据集上仍然具有一定的实际应用价…...

springboot maven项目环境搭建idea

springboot maven项目环境搭建idea 文章目录 springboot maven项目环境搭建idea用到的软件idea下载和安装java下载和安装maven下载和安装安装maven添加JAVA_HOME路径&#xff0c;增加JRE环境修改conf/settings.xml&#xff0c;请参考以下 项目idea配置打开现有项目run或build打…...

vue3检测是手机还是pc端,监测视图窗口变化

1.超小屏幕&#xff08;手机&#xff09; 768px以下 2.小屏设备&#xff08;平板&#xff09; 768px-992px 3.中等屏幕&#xff08;旧式电脑&#xff09; 992px-1200px 4.大屏设备&#xff08;现代电脑&#xff09; 1200px以上 <script setup name"welcome"> i…...

B - Magical Subsequence (CCPC2021哈尔滨)

思路&#xff1a; &#xff08;1&#xff09;问题&#xff1a;对于已知数组&#xff0c;每组依次选两个&#xff0c;尽量选更多组&#xff0c;选的每组和相等&#xff1b;&#xff08;假定和为x) &#xff08;2&#xff09;于是问题拆分为两步&#xff0c; x是多少x确定时&a…...

GX Works3实战:基于TCP+SLMP协议与三菱FX5U的工业互联配置详解

1. 从零开始搭建FX5U通信环境 第一次接触三菱FX5U系列PLC时&#xff0c;我被它小巧的机身和强大的性能惊艳到了。这款PLC虽然体积只有传统Q系列的一半大小&#xff0c;但处理能力却提升了两倍以上。不过在实际项目中&#xff0c;最让我头疼的就是通信配置问题——特别是从老项…...

如何在Windows上完美使用苹果触控板:终极配置指南

如何在Windows上完美使用苹果触控板&#xff1a;终极配置指南 【免费下载链接】mac-precision-touchpad Windows Precision Touchpad Driver Implementation for Apple MacBook / Magic Trackpad 项目地址: https://gitcode.com/gh_mirrors/ma/mac-precision-touchpad 还…...

长期使用聚合API平台,对账单清晰度与费用追溯的满意度反馈

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 长期使用聚合API平台&#xff0c;对账单清晰度与费用追溯的满意度反馈 作为一名长期负责项目维护的开发者&#xff0c;我所在团队在…...

探索Artisan:用开源软件解码咖啡烘焙的数据科学

探索Artisan&#xff1a;用开源软件解码咖啡烘焙的数据科学 【免费下载链接】artisan artisan: the worlds most trusted roasting software 项目地址: https://gitcode.com/gh_mirrors/ar/artisan 在咖啡烘焙的世界里&#xff0c;每一次烘焙都是一次精确的化学反应。从…...

别再只画光路了!用OpticStudio偏振光瞳图,一眼看懂你的激光系统偏振态

激光系统偏振态可视化&#xff1a;OpticStudio偏振光瞳图实战指南 在激光光学系统设计中&#xff0c;偏振态管理往往是被低估的关键环节。一个常见的误区是设计师过度关注几何光路而忽视偏振演变&#xff0c;直到系统出现无法解释的能量损耗或信号失真时才追悔莫及。传统的光线…...

突发外交事件3分钟响应!Perplexity国际新闻搜索应急配置清单,含12条预设Prompt与可信度评分模型

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;突发外交事件3分钟响应&#xff01;Perplexity国际新闻搜索应急配置清单&#xff0c;含12条预设Prompt与可信度评分模型 面对突发外交事件&#xff08;如边境冲突升级、高层会谈临时取消、制裁公告突袭发布&am…...

Overleaf实战:手把手教你用LaTeX制作符合A4排版要求的跨页长表格(含完整代码)

Overleaf实战&#xff1a;LaTeX跨页长表格的终极解决方案 当你正在撰写一篇包含大量数据的学术论文或技术手册时&#xff0c;那些横跨多页的表格往往会成为格式噩梦。表格在页面底部被生硬截断&#xff0c;表头在后续页面消失&#xff0c;页码引用混乱——这些问题不仅影响阅读…...

华为od机试 新系统-麻将基本胡牌型判断(C/C++/Py/Java/Js/Go)

麻将基本胡牌型判断 华为OD新系统机试真题 华为OD新系统上机考试真题 5月17号 100分题型 华为OD机试新系统真题目录点击查看: 华为OD机试新系统真题题库目录|机考题库 + 算法考点详解 题目内容 给定 14 14 14张麻将牌,只包含三种花色:万(用 1 1 1表示)、条(用...

无王无帝定乾坤,来自田间第一人 立凰标定世序

谶曰 乱世去旧制&#xff0c;盛世出布衣。 凰标立天地&#xff0c;大同自此始。 一、破题&#xff1a;王权之外&#xff0c;另有乾坤 世人皆道 “普天之下&#xff0c;莫非王土&#xff1b;率土之滨&#xff0c;莫非王臣。” 却不知真正的变局&#xff0c; 起于垄亩&#xff0…...

Nodejs后端服务接入Taotoken实现AI功能的具体配置步骤

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Node.js 后端服务接入 Taotoken 实现 AI 功能的具体配置步骤 对于 Node.js 开发者而言&#xff0c;将大模型能力集成到后端服务中&…...