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

SpringBoot:多环境配置

多环境配置demo代码:点击查看LearnSpringBoot02

点击查看更多的SpringBoot教程

方式一、多个properties文件配置

注意:创建properties文件,命名规则:application-(环境名称)
示例:application-dev.properties

在resource里创建application-dev.properties文件
在这里插入图片描述

在resource里创建application-product.properties文件
在这里插入图片描述

application.properties文件里切换环境配置
在这里插入图片描述

1、启动dev环境输出的日志
在这里插入图片描述
在浏览器访问http://localhost:8061/hello效果图
在这里插入图片描述
2、启动prdouct环境输出的日志
在这里插入图片描述
在浏览器访问http://localhost:8090/hello效果图
在这里插入图片描述

方式二、yml文件配置方式

在resource里创建application.yml文件
在这里插入图片描述
注意:如果使用这里配置端口,运行项目时需要将 application.properties 文件里的端口配置注释掉

1、启动dev环境输出的日志
在这里插入图片描述
在浏览器访问http://localhost:8991/hello效果图
在这里插入图片描述

2、启动prdouct环境输出的日志
在这里插入图片描述
在浏览器访问http://localhost:8992/hello效果图
在这里插入图片描述

pom.xml代码

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.1.1</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example.springconfig</groupId><artifactId>LearnSpringBoot02</artifactId><version>0.0.1-SNAPSHOT</version><name>LearnSpringBoot02</name><description>Demo project for Spring Boot Config</description><properties><java.version>17</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--        JSR303数据校验--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency><!--https://docs.spring.io/spring-boot/docs/3.1.1/reference/html/configuration-metadata.html#appendix.configuration-metadata.annotation-processor
--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

application.yml代码

server:port: 8990
spring:profiles:active: product
---
server:port: 8991
spring:config:activate:on-profile: dev
---
server:port: 8992
spring:config:activate:on-profile: product#  注意:如果使用这里配置端口,需要将 application.properties 文件里的端口配置注释掉#person:
#  lastName: Test
#  age: 20
#  boss: false
#  birth: 2018/12/12
#  maps: {k1: v1, k2: 12}
#  lists:
#    - java
#    - android
#    - ios
#    - python
#
#  dog:
#    name: dahuang
#    age: 6

HelloWorldControl.java代码

package com.example.springconfig.controller;import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloWorldControl {@RequestMapping("/hello")public String hello(){return "hello world RestController";}//这里测试业务逻辑需要获取配置文件中的某个值 使用 @Value 读取配置文件值@Value("${person.lastName}")private String name;@RequestMapping("/sayhello")public String sayHello(){return "hello "+name;}
}

相关文章:

SpringBoot:多环境配置

多环境配置demo代码&#xff1a;点击查看LearnSpringBoot02 点击查看更多的SpringBoot教程 方式一、多个properties文件配置 注意&#xff1a;创建properties文件,命名规则&#xff1a;application-&#xff08;环境名称&#xff09; 示例&#xff1a;application-dev.proper…...

input框中添加一个 X(关闭/清空按钮)

要在输入框&#xff08;<input> 元素&#xff09;中添加一个 X&#xff08;关闭/清空按钮&#xff09;&#xff0c;可以使用 CSS 和 JavaScript 实现。 HTML&#xff1a; <div class"input-container"><input type"text" id"myInput…...

Unity3d Shader篇(三)— 片元半兰伯特着色器解析

文章目录 前言一、片元半兰伯特着色器是什么&#xff1f;1. 片元漫反射着色器的工作原理2. 片元半兰伯特着色器的优缺点优点&#xff1a;缺点&#xff1a; 3. 公式 二、使用步骤1. Shader 属性定义2. SubShader 设置3. 渲染 Pass4. 定义结构体和顶点着色器函数5. 片元着色器函数…...

【vue3学习P5-P10】vue3语法;vue响应式实现

0、vue2和vue3对比 框架版本API方式双向绑定原理domFragmentsTree-Shakingvue2选项式API&#xff08;Options API&#xff09;基于Object.defineProperty&#xff08;监听&#xff09;实现&#xff0c;不能双向绑定对象类型的数据【通过Object.defineProperty里面的set和get做…...

相机图像质量研究(3)图像质量测试介绍

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结&#xff1a;光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结&#xff1a;光学结构对成…...

PaddleDetection学习5——使用Paddle-Lite在 Android 上实现实时的人脸检测(C++)

使用Paddle-Lite在 Android 上实现实时的人脸检测 1 环境准备2. 部署步骤2.1 下载Paddle-Lite-Demo2.2 运行face_detection_demo项目3 使用Opencv对后处理进行优化4 开启手机摄像头进行人脸检测1 环境准备 参考前一篇在 Android 上使用Paddle-Lite实现实时的目标检测功能 2. …...

全套电气自动化样例图纸分享,使用SuperWorks自动化版免费设计软件!

今天给大家分享一套完备的电气自动化样例图纸&#xff0c;结构准确、内容清晰&#xff0c;适合初学者入门操作练习。 整套图纸包含图纸目录、原理图、端子列表、连接列表、元件列表、接线图&#xff0c;具有较高的参考价值&#xff0c;请大家点击自行下载文件&#xff01; 1e8…...

带你实现用自己域名打开Tomcat

文章目录 Tomcat1.1、Tomcat 下载1.2、Tomcat 文件图解1.3、 启动或关闭 Tomcat1.3.1、 启动1.3.2、 关闭程序2.1、 修改端口号2.2、修改主机名称Tomcat 1.1、Tomcat 下载 首先去Tomcat 官网下载找到我们需要下载的版本 1.2、To...

python coding with ChatGPT 打卡第18天| 二叉树:从中序与后序遍历序列构造二叉树、最大二叉树

相关推荐 python coding with ChatGPT 打卡第12天| 二叉树&#xff1a;理论基础 python coding with ChatGPT 打卡第13天| 二叉树的深度优先遍历 python coding with ChatGPT 打卡第14天| 二叉树的广度优先遍历 python coding with ChatGPT 打卡第15天| 二叉树&#xff1a;翻转…...

java基础训练题(1)

1.下列代码段中&#xff0c;存在编译错误的语句是(B C D) byte b1 1,b2 2,b3,b6,b8; final byte b4 4,b5 6,b7; b3 (b1 b2);/*语句1*/ b6 b4 b5 ; /*语句2*/ b8 (b1 b4);/*语句3*/ b7 (b2 b5);/*语句4*/ System.out.println(b3 b6);A: 语句2 B: 语句1 C: 语句3…...

【自定义序列化器】⭐️通过继承JsonSerializer和实现WebMvcConfigurer类完成自定义序列化

目录 前言 解决方案 具体实现 一、自定义序列化器 二、两种方式指定作用域 1、注解 JsonSerialize() 2、实现自定义全局配置 WebMvcConfigurer 三、拓展 WebMvcConfigurer接口 章末 前言 小伙伴们大家好&#xff0c;上次做了自定义对象属性拷贝&#x…...

闲聊电脑(5)装个 Windows(一)

​夜深人静&#xff0c;万籁俱寂&#xff0c;老郭趴在电脑桌上打盹&#xff0c;桌子上的小黄鸭和桌子旁的冰箱又开始窃窃私语…… 小黄鸭&#xff1a;冰箱大哥&#xff0c;上次说到硬盘分区和格式化&#xff0c;弄完之后&#xff0c;就该装系统了吧&#xff1f; 冰箱&#x…...

力扣(leetcode)第414题第三大的数(Python)

414.第三大的数 题目链接&#xff1a;414.第三大的数 给你一个非空数组&#xff0c;返回此数组中 第三大的数 。如果不存在&#xff0c;则返回数组中最大的数。 示例 1&#xff1a; 输入&#xff1a;[3, 2, 1] 输出&#xff1a;1 解释&#xff1a;第三大的数是 1 。 示例 2&a…...

使用wda框架实现IOS自动化测试详解

目录 1、weditor元素定位工具 1.1、weditor的安装和使用 2、wda iOS自动化框架 2.1、wda概述 2.2、wda安装 2.3、wda的使用 2.3.1、全局配置 2.3.2、创建客户端 2.3.3、APP相关操作 1、启动APP 2、关闭APP 3、获取APP状态信息 4、获取当前APP的运行信息 2.3.4、设…...

LeetCode--代码详解 2.两数相加

2.两数相加 题目 难度&#xff1a;中等 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数…...

【Django开发】美多商城项目第3篇:用户注册和图片验证码开发(附代码,文档已分享)

本系列文章md笔记&#xff08;已分享&#xff09;主要讨论django商城项目开发相关知识。本项目利用Django框架开发一套前后端不分离的商城项目&#xff08;4.0版本&#xff09;含代码和文档。功能包括前后端不分离&#xff0c;方便SEO。采用Django Jinja2模板引擎 Vue.js实现…...

代码随想录算法训练营DAY10 | 栈与队列 (1)

理论基础及Java实现参考文章&#xff1a;栈和队列 一、LeetCode 232 用栈实现队列 题目链接&#xff1a;232.用栈实现队列https://leetcode.cn/problems/implement-queue-using-stacks/ 思路&#xff1a;使用两个栈stack1、stack2实现队列&#xff1b;stack1用来存储入队元素&…...

flinkjar开发 自定义函数

编写自定义加密函数&#xff0c;继承ScalarFunction类&#xff0c;实现eval方法&#xff0c;参数个数类型和返回值根据业务来自定义。 import org.apache.flink.table.functions.ScalarFunction; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax…...

Golang 学习(一)基础知识

面向对象 Golang 也支持面向对象编程(OOP)&#xff0c;但是和传统的面向对象编程有区别&#xff0c;并不是纯粹的面向对象语言。 Golang 没有类(class)&#xff0c;Go 语言的结构体(struct)和其它编程语言的类(class)有同等的地位&#xff0c;Golang 是基于 struct 来实现 OOP…...

C++学习:string的了解

1.string的介绍 #include<string> 对于字符串的操作 自动处理内存的分配和释放 2.string的声明与初始化 1.std::string str1;空的 2.string str2 "afhsihsa" 3.string str3 str2 4.string str3 str2.substr(0,5) .substr(位置&#xff0c;长度) 5.c…...

智能缓存加速:重新定义扩散模型推理效率

智能缓存加速&#xff1a;重新定义扩散模型推理效率 【免费下载链接】ComfyUI-TeaCache 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-TeaCache 在AI创作领域&#xff0c;等待成为最大的创作阻力。当你使用扩散模型生成图像或视频时&#xff0c;是否曾因漫长的…...

GME-Qwen2-VL-2B-Instruct效果扩展:多风格艺术画作的理解与情感分析展示

GME-Qwen2-VL-2B-Instruct效果扩展&#xff1a;多风格艺术画作的理解与情感分析展示 最近在玩一个挺有意思的视觉语言模型&#xff0c;叫GME-Qwen2-VL-2B-Instruct。它个头不大&#xff0c;但能力挺让人意外。我突发奇想&#xff0c;把它当成了一个“数字艺术评论员”&#xf…...

手把手教你用逻辑分析仪抓取DVC1124的I2C波形(附CRC校验分析)

手把手教你用逻辑分析仪抓取DVC1124的I2C波形&#xff08;附CRC校验分析&#xff09; 在嵌入式硬件调试中&#xff0c;I2C通信的波形分析是验证设备交互正确性的关键步骤。集澈DVC1124作为一款高性能AFE芯片&#xff0c;其I2C协议中独特的CRC校验机制为通信可靠性提供了保障。本…...

保姆级教程:手把手配置Postern 3.1.2与Charles v4.6.4联动,实现安卓APP全局流量抓取

安卓移动端流量抓取实战&#xff1a;Postern与Charles深度配置指南 移动应用开发与安全测试中&#xff0c;流量抓取是分析网络行为、调试接口问题的核心技术。不同于简单的代理设置&#xff0c;当应用采用非标准通信协议或主动规避代理时&#xff0c;传统抓包方案往往失效。本文…...

别再乱调参数了!用Matlab polyfit做曲线拟合,从欠拟合到过拟合的实战避坑指南

Matlab曲线拟合实战&#xff1a;从polyfit到正则化的高阶避坑指南 当你面对一组杂乱无章的实验数据时&#xff0c;是否曾为选择哪个多项式阶数而纠结&#xff1f;工程师小张最近就遇到了这个难题——他在处理传感器温度补偿数据时&#xff0c;发现3阶拟合不够精准&#xff0c;但…...

如何掌握Node-lru-cache的fetchMethod:异步数据获取的终极指南

如何掌握Node-lru-cache的fetchMethod&#xff1a;异步数据获取的终极指南 【免费下载链接】node-lru-cache A fast cache that automatically deletes the least recently used items 项目地址: https://gitcode.com/gh_mirrors/no/node-lru-cache Node-lru-cache是一个…...

Simula:革命性Linux VR桌面窗口管理器完全指南

Simula&#xff1a;革命性Linux VR桌面窗口管理器完全指南 【免费下载链接】Simula Linux VR Desktop 项目地址: https://gitcode.com/gh_mirrors/si/Simula Simula是一款专为Linux系统打造的革命性VR桌面窗口管理器&#xff0c;它将传统的桌面操作体验带入虚拟现实空间…...

猫抓:重构网页资源获取与媒体管理的高效解决方案

猫抓&#xff1a;重构网页资源获取与媒体管理的高效解决方案 【免费下载链接】cat-catch 猫抓 chrome资源嗅探扩展 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 在数字内容爆炸的时代&#xff0c;网页资源获取已成为内容创作者、教育工作者和普通用户的…...

手把手教学:用SiameseAOE从海量文本中提取“属性-观点”对

手把手教学&#xff1a;用SiameseAOE从海量文本中提取"属性-观点"对 1. 为什么需要属性观点抽取&#xff1f; 在日常工作中&#xff0c;我们经常遇到这样的场景&#xff1a;面对成千上万条用户评论、社交媒体反馈或调查问卷&#xff0c;如何快速找出有价值的信息&a…...

CLIP-GmP-ViT-L-14模型部署保姆级教程:从零开始的Docker环境配置

CLIP-GmP-ViT-L-14模型部署保姆级教程&#xff1a;从零开始的Docker环境配置 你是不是也对那些能看懂图片的AI模型感到好奇&#xff1f;比如&#xff0c;你上传一张猫的照片&#xff0c;AI不仅能认出是猫&#xff0c;还能告诉你这是橘猫&#xff0c;正在晒太阳。CLIP-GmP-ViT-…...