spring之jdbc配置到固定路径

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 版权声明:欢迎转载,请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/45083053 前言:我不得不说,在配置spring的jdbc链接上,我犯了很多错,虽然我一再改善,并且寻求更加简洁的解决方案,然而都一直未能最终解决,我必须感谢我的队友,是他轻松的找到了这个解决方案,而我一直苦苦寻找的就是它。
版权声明:欢迎转载,请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/45083053
前言:我不得不说,在配置spring的jdbc链接上,我犯了很多错,虽然我一再改善,并且寻求更加简洁的解决方案,然而都一直未能最终解决,我必须感谢我的队友,是他轻松的找到了这个解决方案,而我一直苦苦寻找的就是它。spring的占位符,通过简单的context:property-placeholder元素,就可以轻松的配置jdbc链接,但是这是一个曲折的故事,你听我来诉苦,并且得到你想要的答案。

最初的样子
<bean
  id="dataSource"
  class="org.apache.commons.dbcp.BasicDataSource"
  destroy-method="close">
  <property
   name="driverClassName"
   value="com.mysql.jdbc.Driver"></property>
  <property
   name="url"
   value="jdbc:mysql://127.0.0.1:3306/gong1?useUnicode=true&characterEncoding=utf8&"></property>
  <property
   name="username"
   value="root"></property>
  <property
   name="password"
   value="123456"></property>

这种死板的样子,让我受尽苦难,因为我的项目通常需要在不同的服务器上运行,而所需要的ip和用户名密码和本地的均不相同,我只能在每次打成jar包后,先解压改成我想要的,然后再使用。

接下来的样子
<context:property-placeholder location="conf/jdbc.properties"/>

 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
  <property name="url" value="${jdbc.url}"></property>
  <property name="username" value="${jdbc.username}"></property>
  <property name="password" value="${jdbc.password}"></property>

jdbc.url=jdbc:mysql://127.0.0.1:3306/gong?useUnicode=true&characterEncoding=utf8&
jdbc.username=root
jdbc.password=123456

我好像学到了什么,我使用了占位符,看似我就成功了,只要我改动jdbc.properties文件就OK了,然而我依然深受其害,因为,按照
location="conf/jdbc.properties"的写法,我依然需要改动jar包中的jdbc.properties,而不是我对应相对路径下的jdbc.properties。后来我虽然尝试了很多诸如classpath://conf/jdbc.properties,还有file://conf/jdbc.properties等等各种形式,然而都没有效果,显然我没有找到正确的方案。

最终版
结构图(jdbc.properties文件在conf文件夹下)


<context:property-placeholder location="file:./conf/jdbc.properties"/>

 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
  <property name="url" value="${jdbc.url}"></property>
  <property name="username" value="${jdbc.username}"></property>
  <property name="password" value="${jdbc.password}"></property>

jdbc.url=jdbc:mysql://127.0.0.1:3306/gong?useUnicode=true&characterEncoding=utf8&
jdbc.username=root
jdbc.password=123456

通过在对应目录下运行java -jar communicate.jar就会链接成功了,而不再是找不到对应的目录了。“./”就意味着去找jar包所在路径的上一层。这样的话,相对路径的方案就解决了问题,每一台服务器上只需要配置一次jdbc.properties。
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
2月前
|
负载均衡 监控 Java
Spring Cloud Gateway 全解析:路由配置、断言规则与过滤器实战指南
本文详细介绍了 Spring Cloud Gateway 的核心功能与实践配置。首先讲解了网关模块的创建流程,包括依赖引入(gateway、nacos 服务发现、负载均衡)、端口与服务发现配置,以及路由规则的设置(需注意路径前缀重复与优先级 order)。接着深入解析路由断言,涵盖 After、Before、Path 等 12 种内置断言的参数、作用及配置示例,并说明了自定义断言的实现方法。随后重点阐述过滤器机制,区分路由过滤器(如 AddRequestHeader、RewritePath、RequestRateLimiter 等)与全局过滤器的作用范围与配置方式,提
Spring Cloud Gateway 全解析:路由配置、断言规则与过滤器实战指南
|
2月前
|
Java 关系型数据库 MySQL
Spring Boot自动配置:魔法背后的秘密
Spring Boot 自动配置揭秘:只需简单配置即可启动项目,背后依赖“约定大于配置”与条件化装配。核心在于 `@EnableAutoConfiguration` 注解与 `@Conditional` 系列条件判断,通过 `spring.factories` 或 `AutoConfiguration.imports` 加载配置类,实现按需自动装配 Bean。
|
2月前
|
人工智能 Java 开发者
【Spring】原理解析:Spring Boot 自动配置
Spring Boot通过“约定优于配置”的设计理念,自动检测项目依赖并根据这些依赖自动装配相应的Bean,从而解放开发者从繁琐的配置工作中解脱出来,专注于业务逻辑实现。
|
1月前
|
前端开发 Java 应用服务中间件
《深入理解Spring》 Spring Boot——约定优于配置的革命者
Spring Boot基于“约定优于配置”理念,通过自动配置、起步依赖、嵌入式容器和Actuator四大特性,简化Spring应用的开发与部署,提升效率,降低门槛,成为现代Java开发的事实标准。
|
2月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
529 5
|
2月前
|
传感器 Java 数据库
探索Spring Boot的@Conditional注解的上下文配置
Spring Boot 的 `@Conditional` 注解可根据不同条件动态控制 Bean 的加载,提升应用的灵活性与可配置性。本文深入解析其用法与优势,并结合实例展示如何通过自定义条件类实现环境适配的智能配置。
179 0
探索Spring Boot的@Conditional注解的上下文配置
|
3月前
|
安全 算法 Java
在Spring Boot中应用Jasypt以加密配置信息。
通过以上步骤,可以在Spring Boot应用中有效地利用Jasypt对配置信息进行加密,这样即使配置文件被泄露,其中的敏感信息也不会直接暴露给攻击者。这是一种在不牺牲操作复杂度的情况下提升应用安全性的简便方法。
979 10
|
SQL 缓存 Java
Spring JDBC-混合框架的事务管理
Spring JDBC-混合框架的事务管理
293 0
|
前端开发 Java API
【Spring MVC】(三)搭建Spring MVC+Spring+JDBC框架以及在此框架上进行项目开发2
【Spring MVC】(三)搭建Spring MVC+Spring+JDBC框架以及在此框架上进行项目开发2
180 0
【Spring MVC】(三)搭建Spring MVC+Spring+JDBC框架以及在此框架上进行项目开发2
|
SQL 安全 Java
肝!Spring JDBC持久化层框架“全家桶”教程!
肝!Spring JDBC持久化层框架“全家桶”教程!
335 0
肝!Spring JDBC持久化层框架“全家桶”教程!
下一篇
oss云网关配置