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

通过外部化 `config.properties` 文件更换数据库配置

文章目录

      • 1. 创建外部配置目录
      • 2. 修改外部 `config.properties` 文件
      • 3. 修改 `applicationContext.xml` 或 `spring-mybatis.xml`
      • 4. 修改Tomcat启动脚本 (可选但推荐)
      • 5. 重启Tomcat
      • 6. 验证配置生效
      • 7. `startup.bat` 与 `catalina.bat` 的区别
      • 8. 常见错误排查
      • 9. 总结(Windows下最推荐方法)

Windows环境下部署的Tomcat,如果想要不修改war包直接更换数据库配置,可以使用外部化配置文件的方法。


1. 创建外部配置目录

在Windows下,创建一个目录用于存放外部的 config.properties 文件:

  1. C:\tomcat\config\ 目录下创建一个新的配置文件夹(目录可自定义)。
  2. 将原来的 config.properties 文件从 WEB-INF/classes 目录下复制到 C:\tomcat\config\

2. 修改外部 config.properties 文件

C:\tomcat\config\config.properties 文件中,修改数据库连接信息:

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://newdbhost:3306/newdbname
username=newuser
password=newpassword

3. 修改 applicationContext.xmlspring-mybatis.xml

修改 applicationContext.xml(或者 spring-mybatis.xml

确保Spring配置文件能够引用外部的 config.properties 文件。

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <!-- 使用绝对路径引用外部的config.properties -->
    <property name="location" value="file:C:/tomcat/config/config.properties"/>
</bean>

4. 修改Tomcat启动脚本 (可选但推荐)

如果不想修改 .xml 文件,也可以通过Tomcat启动参数直接指定配置文件路径。

  1. 打开 Tomcatbin 目录下的 catalina.bat 文件。

  2. set JAVA_OPTS 这一行下方添加以下内容:

    set JAVA_OPTS=-Dspring.config.location=file:C:/tomcat/config/config.properties
    
  3. 保存文件后,Tomcat启动时会自动加载外部的 config.properties 文件。


5. 重启Tomcat

  1. 打开 Windows 服务管理器 (Win + R 输入 services.msc)。
  2. 找到 Apache Tomcat 服务,点击 重新启动

6. 验证配置生效

  1. 访问你的 Web 应用程序。
  2. 检查 Tomcat 的 logs/catalina.outlogs/your_app.log 日志,确保数据库连接成功。

7. startup.batcatalina.bat 的区别

  • startup.bat:是一个启动脚本,用于启动Tomcat,它会调用 catalina.bat
  • catalina.bat:是Tomcat的核心启动脚本,负责具体的Tomcat启动逻辑。
  • 推荐位置:由于 startup.bat 本质上是调用 catalina.bat,推荐将 JAVA_OPTS 写在 catalina.bat 中,或者更规范的方式是在 setenv.bat 中进行配置。

8. 常见错误排查

❌ 错误1:Could not resolve placeholder 'driverClassName'

  • 原因:外部配置文件路径错误,或文件权限不足。
  • 解决方案:
    • 确保路径格式正确:file:C:/tomcat/config/config.properties
    • 检查 C:\tomcat\config 目录下文件存在且可读。

❌ 错误2:Access Denied 数据库连接失败

  • 原因:用户名或密码错误,或者数据库用户权限不足。
  • 解决方案:
    • 检查 config.properties 中的 usernamepassword 是否正确。
    • 确保数据库用户有足够权限连接该数据库。

9. 总结(Windows下最推荐方法)

  1. 创建外部 config.properties 文件(如 C:\tomcat\config\config.properties)。
  2. 修改 applicationContext.xml 或 使用 catalina.bat 外部化配置路径
  3. 重启Tomcat,配置生效。

这样就可以在不重新打包 .war 文件的情况下更换数据库连接配置了。


http://www.kler.cn/a/504973.html

相关文章:

  • MATLAB学习笔记-table
  • 工程水印相机结合图纸,真实现场时间地点,如何使用水印相机,超简单方法只教一次!
  • 2025年中科院分区大类划分公布!新增8155本
  • 二级C语言 2025/1/14
  • Redis 优化秒杀(异步秒杀)
  • 贪心算法笔记
  • 《无锡布里渊分布式光纤传感技术:照亮能源领域新征程》
  • PyTorch框架——基于深度学习YOLOv11神经网络路面坑洞检测系统
  • 数据库增量备份和全量备份
  • Vue脚手架开发 Vue2基础 VueRouter的基本使用 vue-router路由案例
  • 32单片机从入门到精通之安全性与可靠性——错误检测(十七)
  • cursor+deepseek构建自己的AI编程助手
  • exclude配置项详解
  • 【MySQL】mysql数据目录
  • 数据结构——概述
  • 论文略读:ASurvey of Large Language Models for Graphs
  • Redis 知识速览
  • Qiskit快速编程探索(进阶篇)
  • 计算机网络 (44)电子邮件
  • 北邮团队在Nature Medicine发表MedFound——辅助疾病诊断的通用医学语言模型|顶刊速递·25-01-15
  • npx和npm区别
  • 【Linux 36】多路转接 - epoll
  • 20250115面试鸭特训营第23天
  • C++并发编程之线程间数据划分的原则与方法
  • ASP.NET Core 中,认证(Authentication)和授权(Authorization)
  • opengauss数据库的日常运维操作