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

SpringBoot的pom.xml文件中设置多环境配置信息

pom.xml文件中设置多环境配置信息

      • 1. 示例代码结构
      • 2. pom.xml配置文件
      • 3. application.yml文件
      • 4. TestController文件
      • 5. Main文件
      • 6. 验证结果

Java项目开发中会用到多种中间件,比如MySQL、Redis、RocketMQ等,每个项目又存在开发环境、测试环境、验收环境、生产环境等。有种方案是把这些配置信息放到pom.xml文件中,方便Jenkins进行打包,也方便开发。

1. 示例代码结构

在这里插入图片描述

2. 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 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><db.url>jdbc:mysql://localhost:3306/dev_db</db.url><db.username>dev_user</db.username><db.password>dev_password</db.password></properties></profile><!-- 生产环境 --><profile><id>prod</id><activation><activeByDefault>false</activeByDefault></activation><properties><db.url>jdbc:mysql://localhost:3306/prod_db</db.url><db.username>prod_user</db.username><db.password>prod_password</db.password></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.yml文件

spring:datasource:url: ${db.url}username: ${db.username}password: ${db.password}

4. 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);}
}

5. 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);}
}

6. 验证结果

在这里插入图片描述
通过上面步骤,启动项目

在这里插入图片描述
启动后,target/classes下的application.yml文件内容就被替换过来了。

在这里插入图片描述
访问http://localhost:8080/test后,配置信息就在接口控制台按照预期给显示出来。如果想测试另外的一套配置信息,maven这边勾选另外的配置即可。

在这里插入图片描述

http://www.xdnf.cn/news/8608.html

相关文章:

  • 黑马k8s(十四)
  • 性能测试工具JMeter
  • 机器学习第二十七讲:Kaggle → 参加机器学习界的奥林匹克
  • 大数据治理:理论、实践与未来展望(一)
  • Next.js项目创建(chapter 1)
  • 关于vector、queue、list哪边是front、哪边是back,增加、删除元素操作
  • 黑马Java基础笔记-15
  • C++ 实现二叉树的后序遍历与中序遍历构建及层次遍历输出
  • 吃透C++ for循环:框架+例题
  • 理解 Redis 事务-20 (MULTI、EXEC、DISCARD)
  • c/c++的opencv像素级操作二值化
  • 开发者工具箱-鸿蒙IPv6子网计算器开发笔记
  • .NET外挂系列:8. harmony 的IL编织 Transpiler
  • 如何通过EventChannel实现Flutter与原生平台的双向通信?
  • C++ 输入输出流示例代码剖析
  • 每日c/c++题 备战蓝桥杯(洛谷P1873 EKO砍树问题详解)
  • 几个MySQL系统调优工具
  • 黑马点评--基于Redis实现共享session登录
  • 《关于浔川社团退出DevPress社区及内容撤回的声明》
  • [C++面试] 基础题 11~20
  • 怎样改变中断优先级?
  • 酷柚易汛ERP仓储物流解决方案
  • CodeBuddy实现pdf批量加密
  • SQL注入基础
  • vue+threeJs 创造镂空管状
  • 配置tomcat时,无法部署工件该怎么办?
  • 深度学习损失“三位一体”——从 Fisher 的最大似然到 Shannon 的交叉熵再到 KL 散度,并走进 PET·P-Tuning微调·知识蒸馏的实战
  • Selenium自动化测试网页加载太慢如何解决?
  • 基于netty实现视频流式传输和多线程传输
  • 大模型的上下文context到底是啥