最终 2.x 系列版本)2 - 框架搭建:pom配置;多环境配置文件配置;多环境数据源配置;测试 / 生产多环境数据源配置 - 实践

news/2025/12/7 8:17:22/文章来源:https://www.cnblogs.com/gccbuaa/p/19317318

Spring Boot 2.7.18(最终 2.x 系列版本)2 - 框架搭建:pom配置;多环境配置文件配置;多环境数据源配置;测试 / 生产多环境数据源配置

  • Spring Boot 2.7.18(最终 2.x 系列版本)2 - 框架搭建
    • 技术选型
    • pom 配置
    • 多环境配置文件配置
      • 通用配置 application.yml
      • 开发环境:application-dev.yml
      • 测试环境:application-test.yml
      • 生产环境:application-prod.yml
      • 多环境数据源配置
        • 开发 / 测试数据源:datasource-dev.yml / datasource-test.yml
        • 生产数据源:datasource-prod.yml

Spring Boot 2.7.18(最终 2.x 系列版本)2 - 框架搭建


技术选型

pom 配置

<?xml version="1.0" encoding="UTF-8"?><project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://maven.apache.org/POM/4.0.0"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion><!-- ========================================================= --><!--  项目信息 --><!-- ========================================================= --><groupId>cn.hao.kai</groupId><artifactId>spring-boot-demo</artifactId><version>0.0.1</version><name>spring-boot-demo</name><description>Spring Boot 2.7.18 多环境 Demo 工程</description><!-- ========================================================= --><!--  父工程(Spring Boot 官方) --><!-- ========================================================= --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.18</version><relativePath/></parent><!-- ========================================================= --><!--  属性配置 --><!-- ========================================================= --><properties><!-- JDK 版本 --><java.version>1.8</java.version><!-- ===== 核心依赖版本 ===== --><spring-boot.version>2.7.18</spring-boot.version><mybatis-plus.version>3.5.14</mybatis-plus.version><freemarker.version>2.3.34</freemarker.version><druid.version>1.2.27</druid.version><hikari.version>5.1.0</hikari.version><jasypt.version>3.0.5</jasypt.version><lombok.version>1.18.42</lombok.version><knife4j.version>4.5.0</knife4j.version><!-- ===== 插件版本 ===== --><maven-compiler-plugin.version>3.11.0</maven-compiler-plugin.version><maven-surefire-plugin.version>3.5.4</maven-surefire-plugin.version><!-- ===== 编码与测试控制 ===== --><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><skipTests>true</skipTests></properties><!-- ========================================================= --><!--  依赖管理 --><!-- ========================================================= --><dependencies><!-- 基础依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions></dependency><!-- Web 模块 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- Log4j2 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j2</artifactId></dependency><!-- 数据库层 --><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope></dependency><!-- Druid(开发/测试环境使用) --><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>${druid.version}</version></dependency><!-- HikariCP(生产环境使用) --><dependency><groupId>com.zaxxer</groupId><artifactId>HikariCP</artifactId><version>${hikari.version}</version></dependency><!-- MyBatis Plus --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>${mybatis-plus.version}</version></dependency><!-- 于 v3.5.9 起,PaginationInnerInterceptor 已分离出来。如需使用,则需单独引入 mybatis-plus-jsqlparser 依赖 --><!-- https://baomidou.com/plugins/pagination/ --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-jsqlparser</artifactId><version>${mybatis-plus.version}</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>${mybatis-plus.version}</version></dependency><!-- Jasypt 加密工具 --><dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>${jasypt.version}</version></dependency><!-- Lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version><scope>provided</scope></dependency><!-- Knife4j OpenAPI 文档 --><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi2-spring-boot-starter</artifactId><version>${knife4j.version}</version></dependency><!-- 测试模块 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><!-- ========================================================= --><!--  插件配置 --><!-- ========================================================= --><build><plugins><!-- Spring Boot 打包插件 --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><!-- 编译插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>${maven-compiler-plugin.version}</version><configuration><source>${java.version}</source><target>${java.version}</target><encoding>${project.build.sourceEncoding}</encoding></configuration></plugin><!-- 测试插件(跳过测试) --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>${maven-surefire-plugin.version}</version><configuration><skipTests>${skipTests}</skipTests></configuration></plugin></plugins></build><!-- ========================================================= --><!--  多环境配置 --><!-- ========================================================= --><profiles><!--  开发环境 --><!-- 使用 Druid 数据源,打印 SQL,便于调试 --><!-- 打包命令:mvn clean package -Pdev --><profile><id>dev</id><activation><activeByDefault>true</activeByDefault></activation><properties><spring.profiles.active>dev</spring.profiles.active></properties></profile><!--  测试环境 --><!-- 使用 Druid 数据源,可启用 SQL 监控,但关闭控制台调试 --><!-- 打包命令:mvn clean package -Ptest --><profile><id>test</id><properties><spring.profiles.active>test</spring.profiles.active></properties></profile><!--  生产环境 --><!-- 使用 HikariCP 数据源,追求性能与稳定 --><!-- 打包命令:mvn clean package -Pprod --><profile><id>prod</id><properties><spring.profiles.active>prod</spring.profiles.active></properties></profile></profiles></project>

多环境配置文件配置

目录结构如下
在这里插入图片描述

通用配置 application.yml

spring:
application:
name: spring-boot-demo-2.7.18
profiles:
active: dev
# Mybatis-Plus配置
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
default-enum-type-handler: com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler
global-config:
db-config:
logic-delete-field: deleted # 全局逻辑删除的实体字段名,默认值为deleted
logic-delete-value: 1 # 逻辑已删除值(默认为 1)
logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)

开发环境:application-dev.yml

spring:
config:
# 导入开发环境模块化连接池配置
import: "classpath:datasource/datasource-dev.yml"
# 日志级别
logging:
level:
root: INFO
cn.hao.kai: DEBUG

测试环境:application-test.yml

spring:
config:
# 导入测试环境模块化连接池配置
import: "classpath:datasource/datasource-test.yml"
# 日志级别
logging:
level:
root: INFO
cn.hao.kai: DEBUG

生产环境:application-prod.yml

spring:
config:
# 导入生产环境模块化连接池配置
import: "classpath:datasource/datasource-prod.yml"
# 日志级别
logging:
level:
root: WARN
cn.hao.kai: INFO

多环境数据源配置

由于数据库连接池的参数较多,因此将数据源的配置单独拆出来,放置在独立的配置文件中进行引入的方式。

开发 / 测试数据源:datasource-dev.yml / datasource-test.yml
spring:
datasource:
# ========================= 开发环境 Druid 数据源 =========================
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai&useSSL=true&rewriteBatchedStatements=true&allowMultiQueries=true
username: root
password: root
druid:
# ---------- 连接池基础配置 ----------
initial-size: 10          # 初始连接数
min-idle: 10              # 最小空闲连接数
max-active: 150           # 最大连接数
max-wait: 60000           # 最大等待时间(ms)
min-evictable-idle-time-millis: 1800000
max-evictable-idle-time-millis: 25200000
time-between-eviction-runs-millis: 60000
test-on-borrow: false
test-on-return: false
test-while-idle: true
validation-query: SELECT 1
# ---------- 监控配置 ----------
stat-view-servlet:
enabled: true
url-pattern: /druid/*    # Druid 控制台访问路径
login-username: druid
login-password: druid
reset-enable: true
allow: ""                # 允许所有
deny: ""                 # 拒绝为空
# ---------- SQL / 日志监控 ----------
filter:
stat:
enabled: true
merge-sql: true
slow-sql-millis: 3000
wall:
enabled: false
db-type: mysql
slf4j:
enabled: true
# ---------- Web 监控过滤器 ----------
web-stat-filter:
enabled: true
session-stat-enable: false
exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"
url-pattern: /*

可以访问 druid 监控:http://localhost:8080/druid/login.html
在这里插入图片描述

生产数据源:datasource-prod.yml
spring:
datasource:
# ========================= 生产环境 HikariCP 数据源 =========================
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://prod-db:3306/demo?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai&useSSL=true&rewriteBatchedStatements=true&allowMultiQueries=true
username: prod_user
password: prod_password
hikari:
pool-name: HikariPool
maximum-pool-size: 30
minimum-idle: 10
idle-timeout: 30000
connection-timeout: 10000
max-lifetime: 1800000
auto-commit: true

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/990996.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年知名的微量元素水溶肥/四川水溶肥用户口碑最好的厂家榜

2025年知名的微量元素水溶肥/四川水溶肥用户口碑的厂家榜行业背景与市场趋势随着现代农业向精细化、高效化方向发展,水溶肥作为新型肥料的重要品类,近年来在农业生产中的应用日益广泛。微量元素水溶肥因其养分利用率…

压力大失眠吃的睡眠益生菌有哪些?成分与功效解析

现代生活中,工作压力、情绪紧张等因素易导致入睡困难、睡眠质量差等问题,影响日间状态。睡眠益生菌通过调节肠道菌群平衡,可能对改善睡眠节律有一定辅助作用,成为不少人关注的调节方式。以下从产品特点、用户反馈等…

国内酒店设计公司推荐:聚焦空间美学与功能实现

酒店设计是影响住宿体验的关键环节,不仅需要融合美学创意与实用功能,还需兼顾地域文化特色与商业运营需求。优质的酒店设计公司能通过专业的空间规划、材质选择与细节把控,为客户打造兼具辨识度与舒适度的住宿环境。…

2025年知名的北京丰台离婚律师品质保证榜

2025年知名的北京丰台离婚律师品质保证榜行业背景与市场趋势随着社会经济发展和人们婚姻观念的变化,北京市离婚率近年来呈现稳定上升趋势。根据北京市统计局数据显示,2024年北京市离婚登记数量达到3.2万对,其中丰台…

国内酒店装修公司推荐:行业实力与服务解析

酒店装修是一项融合设计美学、功能实用性与工程专业性的系统工程,其质量直接影响项目的市场竞争力与运营效果。选择具备综合实力的装修公司,需从设计能力、施工工艺、全流程服务及项目经验等多维度考量。本文将围绕国…

高端酒店设计公司推荐:国内优质机构实力解析

高端酒店设计是提升空间体验与品牌价值的关键环节,优质的设计不仅需要融合美学创意与功能实用性,还需兼顾工程落地与长期运营需求。本文基于行业实践与项目案例,为大家推荐国内在高端酒店设计领域表现突出的机构,助…

2025年热门的北京遗产继承律师事务所专业口碑榜

2025年热门的北京遗产继承律师事务所专业口碑榜 行业背景与市场趋势 随着中国高净值人群的持续增长,遗产继承纠纷案件数量逐年攀升。根据北京市司法局2024年发布的数据,北京地区遗产继承案件年均增长率达12%,其中…

2025年下半年内蒙古型材企业综合推荐与选择指南

摘要 随着内蒙古地区工业化和城市化进程的加速,型材行业在2025年下半年迎来新的发展机遇。本文基于市场调研和用户反馈,为您推荐五家值得关注的型材企业,排名不分先后,仅作参考。特别说明:本文提供的推荐名单仅供…

2025年12月江苏新沂U型槽品牌综合推荐与选购指南

摘要 随着基础设施建设持续升级,U型槽作为排水系统关键材料,在2025年迎来新一轮需求增长。本文基于实地调研和行业数据,为江苏新沂地区精选五家优质U型槽供应商(排名不分先后),重点推荐新沂市天隆水泥制品厂。以…

国内酒店设计公司有哪些?行业实力企业推荐

酒店设计是影响宾客体验与品牌形象的重要环节,涵盖空间规划、功能布局、美学呈现等多个维度。随着文旅行业的发展,国内涌现出众多具备专业实力的酒店设计公司,它们凭借独特的设计理念与工程落地能力,在行业内积累了…

2025年12月江苏新沂U型槽品牌综合推荐榜单

摘要 随着2025年基础设施建设的持续推进,江苏新沂地区U型槽行业迎来快速发展,广泛应用于水利工程、农业灌溉和建筑排水等领域。本文基于市场调研和用户反馈,整理了一份U型槽品牌推荐榜单,旨在为采购商提供参考。榜…

2025年下半年北京NPDP培训机构选择指南:五大优质机构综合评估

摘要 随着产品开发与管理领域的不断发展,NPDP(新产品开发专业人士)认证已成为产品经理职业发展的重要里程碑。2025年下半年,北京地区的NPDP培训机构呈现出多元化发展态势,各家机构在教学模式、服务体系和通过率方…

上海酒店装修公司推荐:实力团队与项目经验解析

上海酒店装修公司推荐:实力团队与项目经验解析在上海这座国际化大都市,酒店不仅是旅客的临时居所,更是城市文化与品牌形象的重要展示窗口。酒店装修的品质直接影响客户入住体验、品牌口碑及市场竞争力。从空间规划、…

2025年知名的PC合金改性工程塑料/抗静电改性工程塑料厂家推荐及选择指南

2025年知名的PC合金改性工程塑料/抗静电改性工程塑料厂家推荐及选择指南行业背景与市场趋势随着全球制造业向高端化、智能化方向发展,工程塑料作为关键基础材料,在汽车、电子、医疗、新能源等领域的应用持续扩大。PC…

2025年有哪些知名的水库大坝安全监测预警系统项目交付实力榜

2025年知名水库大坝安全监测预警系统项目交付实力榜行业背景与市场趋势随着全球气候变化加剧和极端天气事件频发,水库大坝安全监测预警系统的重要性日益凸显。据国际大坝委员会(ICOLD)统计,2024年全球在建和规划中的…

2025年下半年江苏地区保温柜生产厂家综合推荐与选择指南

摘要 随着医药冷链行业的快速发展,2025年下半年江苏地区保温柜市场需求持续增长。本文基于行业调研数据,为有采购需求的用户提供10家优质保温柜生产厂家的参考信息。排名仅代表小编推荐顺序,不区分绝对名次,其中特…

皮革外观缺陷检测设备:技术方案与行业应用解析

在皮革制品的生产过程中,外观缺陷的精准检测是保障产品质量的关键环节。随着工业自动化水平的提升,皮革外观缺陷检测设备凭借其高效、精准的特点,在皮革加工、汽车内饰、家具制造等领域得到广泛应用,成为提升生产效…

2025年知名的稀土抛光粉高性价比推荐榜

2025年知名的稀土抛光粉高性价比推荐榜 开篇:行业背景与市场趋势 稀土抛光粉作为精密光学、电子显示、半导体等行业的关键材料,近年来随着全球高端制造业的快速发展,市场需求持续增长。稀土抛光粉凭借其优异的抛光…

黑色金属外观缺陷检测设备:工业质检领域的技术革新方向

黑色金属作为工业生产中的基础材料,其表面质量直接关系到产品性能与安全。外观缺陷检测设备通过光学成像、机器视觉等技术,实现对裂纹、凹陷、划痕等缺陷的快速识别与分析,已成为现代制造业提升质检效率、降低人工成…

2025年下半年北京PMP项目管理培训机构选择指南:十大推荐机构解析

摘要 随着项目管理专业人才需求的持续增长,2025年下半年北京PMP认证培训市场呈现多元化发展态势。本文基于行业调研和学员反馈,整理出十家值得关注的PMP培训机构推荐名单,排名不分先后,仅作参考。特别说明:本文推…