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

SpringBoot多环境配置文件切换

resources下application.yml、application-dev.yml、application-prod.yml多个配置文件。

spring:profiles:active: dev
spring:profiles:active: prod

一般都是通过修改spring.profiles.active值来修改加载不同环境的配置信息,可以把切换的dev/prod放到pom.xml文件来实现,避免手动修改。

1. 示例代码结构

在这里插入图片描述

2. pom文件

<?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 http://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>2.7.0</version></parent><groupId>vip.buddha</groupId><artifactId>springboot-demo</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies><profiles><!-- 开发环境 --><profile><id>dev</id><activation><activeByDefault>true</activeByDefault></activation><properties><package.environment>dev</package.environment></properties></profile><!-- 生产环境 --><profile><id>prod</id><activation><activeByDefault>false</activeByDefault></activation><properties><package.environment>prod</package.environment></properties></profile></profiles><build><resources><resource><directory>src/main/resources</directory><filtering>true</filtering><!-- 添加以下配置,明确包含YAML文件 --><includes><include>**/*.yml</include></includes></resource></resources><plugins><plugin><artifactId>maven-resources-plugin</artifactId><configuration><delimiters><delimiter>${}</delimiter> <!-- 使用 ${} 作为占位符 --></delimiters><useDefaultDelimiters>false</useDefaultDelimiters> <!-- 禁用默认的 @..@ --></configuration></plugin></plugins></build></project>

3. application文件

spring:profiles:active: ${package.environment}

4. application-dev文件

spring:datasource:url: jdbc:mysql://localhost:3306/dev_dbusername: dev_userpassword: dev_password

5. application-prod文件

spring:datasource:url: jdbc:mysql://localhost:3306/prod_dbusername: prod_userpassword: prod_password

6. TestController文件

package vip.buddha.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 TestController {@Value("${spring.datasource.url}")private String url;@Value("${spring.datasource.username}")private String username;@Value("${spring.datasource.password}")private String password;@RequestMapping("/test")public void test() {System.out.println("url:" + url);System.out.println("username:" + username);System.out.println("password:" + password);}
}

7. Main文件

package vip.buddha;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class Main {public static void main(String[] args) {SpringApplication.run(Main.class, args);}
}

8. 效果演示

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

maven面板中,先clean,后选择Profiles为dev还是prod,再install后启动Main主程序。浏览器访问http://localhost:8080/test,接口控制台就展示出预期结果来。

在这里插入图片描述

相关文章:

  • 高速串行差分信号仿真分析及技术发展挑战续
  • TF-IDF和词袋模型
  • Python实用工具:文件批量重命名器
  • MySQL分库分表
  • 对神经正切核的理解和推导(1)
  • 浅析SpringBoot中的classpath
  • 互联网和以太网之是什么与区别
  • DVWA文件上传笔记
  • 踩坑记录:RecyclerView 局部刷新notifyItemChanged多次调用只触发一次 onBindViewHolder 的原因
  • 数据库调优与数据表的范式设计
  • LangGraph:部署智能应用
  • 在 .NET 环境下实现跨进程高频率读写数据
  • 再论自然数全加和-3
  • 使用CodeBuddy实现网页自动连点器
  • 【通用技巧】技术文章工业级指南:目标定位、架构设计与持续演进
  • java中的SPI(Service Provider Interface)机制解读
  • AWTK嵌入式图形框架开发备忘(二)
  • LangGraph 实战指南:长期记忆管理
  • 海外IP代理在跨境电商选品、运营、风控的实战应用解析
  • Java面向对象 一
  • 重庆光龙网站建设/so导航 抖音
  • 网站设计大概在什么价位/网络运营是什么意思
  • 中山市有做网站优化的吗/2022年时事政治热点汇总
  • 用java做音乐网站/外贸企业网站推广
  • 网站建设网络推广加盟/外贸网站都有哪些
  • 生活服务网站建设方案/正规职业技能培训机构