当前位置: 首页 > 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…...

Qwen3.5-2B轻量部署教程:适配Jetson/树莓派的2B多模态模型实测

Qwen3.5-2B轻量部署教程&#xff1a;适配Jetson/树莓派的2B多模态模型实测 1. 模型概述 Qwen3.5-2B是阿里云推出的轻量化多模态基础模型&#xff0c;属于Qwen3.5系列的小参数版本&#xff08;20亿参数&#xff09;。这个模型专为边缘计算设备优化&#xff0c;主打低功耗、低门…...

天华新能年营收75亿:净利同比降56% CFO离职 宁德时代是二股东

雷递网 雷建平 4月3日苏州天华新能源科技股份有限公司&#xff08;简称&#xff1a;“天华新能”&#xff09;日前发布财报。财报显示&#xff0c;天华新能2025年营收为75亿元。天华新能最近两年利润处于持续下滑状态&#xff0c;其中&#xff0c;2025年净利下降55.6%&#xff…...

CCF网络安全期刊大盘点:哪些期刊更适合你的研究方向?

CCF网络安全期刊精准匹配指南&#xff1a;如何为你的研究找到最佳发表平台 在网络安全研究领域&#xff0c;选择合适的期刊发表论文不仅关系到研究成果的传播效果&#xff0c;更直接影响学术影响力的建立和职业发展路径。面对CCF&#xff08;中国计算机学会&#xff09;推荐目录…...

Cursor根本无法调试C++

你知道吗&#xff1f;你的Cursor可能正在"假装"是VS Code&#xff0c;但它根本无法像VS Code一样正常调试C。项目里按下F5&#xff0c;弹出提示&#xff1a;“Windows C Debugging is supported only in Microsoft versions of VS Code。” 检查配置无误&#xff0c;…...

极客老王说Agent:具备“看屏幕”能力的Agent如何击穿传统接口无法触达的业务荒原?

站在2026年4月这个“智能体元年”的节点回望&#xff0c;人工智能的演进已然完成了一次惊人的范式跃迁。根据最新的行业动态显示&#xff0c;Agent正从单纯依赖文本指令的“对话框”形态&#xff0c;加速向具备多模态感知、尤其是具备“看屏幕”能力的“数字员工”形态进化。在…...

Python脚本:一键将图片按顺序合成PDF

&#x1f4cc; 前言在日常工作和学习中&#xff0c;我们经常需要将多张图片&#xff08;如扫描件、截图、照片&#xff09;合并成一个PDF文件。虽然有很多现成的工具可以实现&#xff0c;但用Python自己写一个脚本不仅灵活&#xff0c;还能避免上传到第三方网站带来的隐私风险。…...

原神帧率解锁终极指南:三步轻松突破60FPS限制

原神帧率解锁终极指南&#xff1a;三步轻松突破60FPS限制 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock 还在为《原神》60帧限制感到困扰吗&#xff1f;genshin-fps-unlock是一款专为《…...

暗黑破坏神2存档修改神器:从入门到精通的完整指南

暗黑破坏神2存档修改神器&#xff1a;从入门到精通的完整指南 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 如果你是暗黑破坏神2的忠实玩家&#xff0c;一定遇到过反复刷装备的枯燥、角色培养的漫长过程。d2s-editor作为一款强…...

Windows和Office激活终极解决方案:KMS_VL_ALL_AIO完全指南

Windows和Office激活终极解决方案&#xff1a;KMS_VL_ALL_AIO完全指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 你是否厌倦了Windows系统频繁弹出激活提醒&#xff1f;是否因为Office软件…...

用快马平台实践vibe coding:5分钟构建你的音乐可视化应用原型

最近在探索一种叫"vibe coding"的编程方式&#xff0c;简单来说就是跟着感觉走&#xff0c;先抓住创意灵感再考虑具体实现。正好发现InsCode(快马)平台特别适合这种创作方式&#xff0c;今天就带大家用5分钟做个音乐可视化应用&#xff0c;完全不需要从零开始写代码。…...