spring获取DataSource数据源从Tomcat中配置的数据源获取方法--jndi方式

2023-11-06

1.配置目的:公司数据库提供内网与外网访问数据库,在家与公司都可以访问,这就需要分情况配置数据源信息,公司项目统一在tomcat中配置数据源信息,不同环境只需要更改tomcat数据源配置信息,不需要对项目配置信息进行修改,方便灵活

2.对于tomcat配置jndi数据源与spring做整合,目前理解不是很深,白天搭建了一下,成功获取数据源连接,目前只提供一种配置方式,至于tomcat配置虚拟目录还不是很了解

3.正式配置:目前这个是整合的c3p0连接池

3.1:\conf\Catalina\localhost目录下新建一个xml文件,文件名与项目名称保持一致(例如spring-02.xml),如果没有文件夹就创建

3.2:spring-02.xml文件配置信息如下

<Context path="/spring-02" displayName="mysql" docBase="${catalina.home}/webapps/spring-02"  reloadable="true" >
    <Resource auth="Container" name="jdbc/sb"
            factory="org.apache.naming.factory.BeanFactory"
            type="com.mchange.v2.c3p0.ComboPooledDataSource"
            driverClass="com.mysql.jdbc.Driver"
            user="root"
            password="123" 
            jdbcUrl="jdbc:mysql:///sb" 
            />
</Context>

其中 path="/..."与项目名保持一致,docBase="${catalina.home}/webapps/spring-02"表示项目部署在webapps包下面,项目名称是spring-02  ,其他信息就是数据库连接信息,注意连接池是c3p0,不同连接池配置不相同  name属性随便配,但要与后面spring的主配置文件中名称一致  tomcat中配置就完成了

3.3:spring的主配置文件配置如下

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
            <property name="jndiName">
                <value>java:comp/env/jdbc/sb</value>
            </property>
</bean>

其中value标签值java:comp/env固定写法,jdbc/sb与tomcat中配置的name属性一致(上面提到)

 

3.4最后在web.xml中配置jndi引用

<resource-ref>
      <description>mysql</description>
      <res-ref-name>jdbc/spring-02</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
       <res-auth>Container</res-auth>
   </resource-ref>

这一步测试后不用配置也可以访问到数据库,如果访问不到可以加上,如果出现错误信息,则在tomcat的lib文件夹加入相应的jar

c3p0,mysql驱动等相应的jar包

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spring获取DataSource数据源从Tomcat中配置的数据源获取方法--jndi方式 的相关文章

  • GBDT、XGboost

    1 GBDT的基本原理是什么 采用决策树作为弱分类器的Gradient Boosting算法被称为GBDT 梯度提升决策树 Gradient Boosting Decision Tree GBDT 其基本思想是根据当前模型损失函数的负梯度信
  • 数据中台-让数据用起来-5

    文章目录 第五章 数据汇聚联通 打破企业数据孤岛 5 1 数据采集 汇聚的方法和工具 1 线上行为采集 2 线下行为采集 3 互联网数据采集 4 内部数据汇聚 5 2 数据交换产品 1 数据源管理 2 离线数据交换 3 实时数据交换 5 3
  • 樱花树代码html,樱花树代码

    import turtle as T import random import time 画樱花的躯干 60 t def Tree branch t time sleep 0 0005 if branch gt 3 if 8 lt bran
  • 深度学习 (一)计算机如何处理和识别图片揭秘

    前言 先来一张美景图 欣赏一下大自然 顺便大家猜猜这是哪里 有时候真感叹大自然的雄伟壮阔 自然形成了无数的山和风景不需要任何点缀 有时候在想为什么亲近自然界我们会有亲近的感觉 可能那是我们的来源 我们人类在经过了无数代的繁衍生息 发展到了现
  • ARM 常用汇编语法

    ARM 常用汇编语法 如果使用过 STM32 的话就会知道 MDK 和 IAR 下的启动文件 startup stm32f10x hd s其中的汇编语法是有所不同的 将 MDK 下的汇编文件直接复制到 IAR 下去编译就会出错 因为 MDK
  • 递归实现栈的翻转

    递归实现栈的翻转 主要考察对于递归的理解 其实这个问题最简单的方法当然是设计一个空的栈来存储这些元素 一次达成逆序 但是题目要求使用递归的方式实现逆序 因此需要借助函数返回栈来充当这个这个栈的作用 实际上依然是借助了一个栈 但是这个栈是函数
  • 如何破解Win7之开机密码

    声明 本次实验是利用5次Shift来破解Win7密码 如果Win7 Win10已经修补此漏洞则不要继续尝试 1 VMware安装好1台Win7操作系 2 将设备开机后 连续摁键盘Shift会弹出如下提示框 则表示该计算机有漏洞 直接X掉就好
  • Android TTS语音播报实践

    在工作中遇到了语音播报的需求 在收到push后 用语音播报push携带的播报内容 类似于微信支付宝的收款信息一样 调研后主要的语音播报方案有一下几种 基于第三方的TTS SDK 如百度 思必驰 讯飞等 自研Native的TTS引擎 模型 基
  • JavaScript 使用原生js和jquery两种方法,实现tab栏切换

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 一 使用原生js实现tab栏切换 代码如下 具体注释已经在代码中给出
  • 下载好python后,怎么打开,python怎么进入编程界面

    大家好 给大家分享一下python下载安装好后怎么打开 很多人还不知道这一点 下面详细解释一下 现在让我们来看看 1 python第一次怎么打开 python第一次打开方法如下 win r快捷键打开运行窗口 在运行窗口输入栏中输入cmd后回
  • 调用百度云API实现语音识别

    一 在云平台创建语音技术应用 1 点击百度AI平台短语音识别https ai baidu com tech speech asr 登录百度云账号 2 新用户注册完百度智能云平台后 需要在 语音技术 概览 页面领取语音识别的免费额度 否则后续
  • 单片机串口发送16进制、ASCII

    单片机串口发送16进制 ASCII 单片机的串口是 你给的是什么格式他就发送什么格式 在使用串口助手接收到时候也会出现 用什么显示的选项 1 如果你串口发送的是16进制数 可以直接把16进制数放到数组里面进行发送 也可以用sprintf函数
  • js和jQuery知识点总结

    目录 一 jQuery知识点梳理 1 jQuery入门 选择器 案例1 表格隔行换色 二 工具方法 属性 CSS 案例2 实现全选功能 三 筛选 过滤 位置 案例3 实现返回顶部功能 四 事件 效果 二 JavaScript知识点梳理 一
  • 30天自制操作系统 day2 32位处理器的几个寄存器 换种方式制作磁盘镜像 makefile

    32位处理器的几个寄存器 制作磁盘镜像工具 用的是它自己写的工具 叫edimg 使用方式如下 edimg imgin z tools fdimg0at tek wbinimg src ipl bin len 512 from 0 to 0
  • 转:【Python3网络爬虫开发实战】 requests基本用法

    1 准备工作 在开始之前 请确保已经正确安装好了requests库 如果没有安装 可以参考1 2 1节安装 2 实例引入 urllib库中的urlopen 方法实际上是以GET方式请求网页 而requests中相应的方法就是get 方法 是
  • 解决Win7&Win8 64位下Source Insight提示未完整安装的问题

    网上的破解版的注册表文件都是针对32位系统的 所以在64位系统里运行根本无法破解 下面分别贴出这俩系统里的破解文件 使用方法 分别复制对应系统的内容 新建文本文档 将内容粘贴进去 重命名为 reg文件 双击运行 弹出提示窗口 点击 确定 整
  • DolphinScheduler3.1.4安装部署

    1 使用Xshell工具上传dolphinscheduler 3 1 4 bin tar gz到 opt software目录下 2 在 opt software目录下使用tar命令解压到 opt module目录下 tar zxvf ap
  • 事务是什么???

    一 什么是事务 事务是一系列的操作 这些操作要么全部成功 要么全部失败 如果说其中一个操作失败 就是已经成功执行的操作都会发生回滚 仿佛什么都没发生过一样 二 事务的四大特性 ACID 原子性 事务是不可分割的 事务的操作要么全部事务 要么
  • windows powershell激活anaconda虚拟环境

    在windows powershell中激活anaconda虚拟环境 一 以管理员身份运行windows powershell 二 输入 Set ExecutionPolicy RemoteSigned 三 激活虚拟环境 activate

随机推荐

  • Leetcode面试题 17.08. 马戏团人塔——最长递增子序列问题

    文章目录 引入 马戏团人塔问题分析 最长递增子序列问题 LIS 解法 方法一 动态规划 方法二 贪心 二分查找 马戏团人塔问题解法 堆箱子问题解法 引入 今天做到面经的17 08 马戏团人塔 和面试题 08 13 堆箱子问题 两个题目很相似
  • 【CocosCreator入门】CocosCreator组件

    Cocos Creator 是一款流行的游戏开发引擎 具有丰富的组件和工具 其中Spine 是一个基于骨骼系统的 2D 动画工具 它可以让开发者通过对骨架和关键帧的调整来制作出更加自然 流畅的动画效果 Cocos Creator 支持使用
  • SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers论文解读

    SegFormer Simple and Efficient Design for Semantic Segmentation with Transformers 论文 2105 15203 SegFormer Simple and Eff
  • CANOPEN详解

    canopen简介 CAN 提供了所有的网络管理服务和报文传送协议 但并没有定义对象的内容或者正在通讯的对象的类 型 它只定义了 how 没有定义 what 而这正是 CANopen 切入点 CANopen 的核心概念是设备对象字典 OD
  • 多模态数据+知识图谱,这次你的疑难杂症有解了!

    数据是AI的基础 不同行业领域的数据来源广泛 形式多样 其每一种来源或形式都可以看作是一种模态 例如视频 图片 语音以及工业场景下的传感数据 红外 声谱等 多模态数据的语义理解与知识表示让智能体能更深入地感知 理解真实的数据场景 更能进一步
  • 热红外和可见光数据集的具有模态不变特征表示的跨模态图像匹配网络

    Cross Modality Image Matching Network With Modality Invariant Feature Representation for Airborne Ground Thermal Infrare
  • 使用Ajax异步加载网页——一文入门JQuery的Ajax

    Ajax Ajax Asynchronous Javascript And XML 百度百科写道 异步JavaScript和XML 是指一种创建交互式 快速动态网页应用的网页开发技术 无需重新加载整个网页的情况下 能够更新部分网页的内容 重
  • Unity Shader入门精要第七章 基础纹理 凹凸映射

    Unity系列文章目录 文章目录 Unity系列文章目录 前言 一 实践 参考 前言 纹理的另一种常见的应用就是凹凸映射 bump mapping 凹凸映射的目的是使用一张纹理 来修改模型表面的法线 以便为模型提供更多的细节 这种方法不会真
  • 发电机励磁装置LabVIEW 和MATLAB/Simulink联合仿真

    一 主要内容 实现发电机励磁装置的独立运行 测试学习及动态参数优化 开发一款发电机励磁装置虚拟仿真系统 为便于和励磁装置进行控制器域网 Controller Area Network 简称 CAN 通讯并实现友好的人机界面 主程序基于Lab
  • 希沃展台如何使用_电子白板基本操作及展台使用教程

    电子白板基本操作及展台使用教程 一 一体机使用注意事项 1 红外边框 1 注意边框尤其是底边容易有粉笔末等灰尘 阻碍红外线的发射与接收 影响定位造成失误或失效 2 注意手 衣服与边框间的距离 以免产生误操作 2 电视机菜单使用及误操作处理
  • C # 学习笔记十

    引言 委托 和 事件在 Net Framework中的应用非常广泛 然而 较好地理解委托和事件对很多接触C 时间不长的人来说并不容易 它们就像是一道槛儿 过了这个槛的人 觉得真是太容易了 而没有过去的人每次见到委托和事件就觉得心里别 bi
  • github代码push

    情景 今天准备往github提交代码 但是发现一直443 解决方法 首先 科学上网 然后终端输入 git config global http https github com proxy socks5 127 0 0 1 7890 完事
  • 网络系列--计算机系统与人工智能之我见

    文章目录 计算机系统与人工智能之我见 for AI 硬件 XPU的发展 软件 AI编程框架 by AI AIOps 传统产业 AI 总结 参考文献 人工智能 AI 是当前的发展热点 从计算机系统的角度看 有两个角度 一是for AI 即何优
  • Google Chrome右上角搜索标签页(倒三角图标) 禁用方法

    无意间发现这个图标 以为是安装了流氓插件 没想到是浏览器自带的实验性功能 禁用方法 地址栏输入 chrome flags 搜索栏输入 Tab Search 把Default改为Disabled 重启浏览器即可 2021 6 6更新 突然又发
  • IDEA和VS code设置默认换行符为LF

    相信用Git的人对这个问题非常了解了 如果团队没做好约定 或者新人不太会用git 用的又是windows git又没有开启autocrlf 那么当队友修改了代码提交之后 那画面真的是不忍直视 所以索性将IDE的默认换行符设置为LF 一劳永逸
  • tf好朋友之matplotlib的使用——secondary axis次坐标轴的使用

    tf好朋友之matplotlib的使用 secondary axis次坐标轴的使用 次坐标轴显示的常用函数 plt subplots ax1 twinx 应用示例 坐标轴可以不止一边噢 除了左边还可以有右边 次坐标轴显示的常用函数 plt
  • 【华为OD统一考试B卷

    在线OJ 已购买本专栏用户 请私信博主开通账号 在线刷题 运行出现 Runtime Error 0Aborted 请忽略 华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一
  • 2023浙江省赛“信息安全管理与评估“--数字取证调查--网络数据包分析解析(高职组)

    2022全国职业技能大赛 信息安全管理与评估 高职组 任务书 2022全国职业技能大赛 信息安全管理与评估 任务书 第一阶段竞赛项目试题 第二阶段竞赛项目试题 任务 2 网络数据包分析 第三阶段竞赛项目试题 2022全国职业技能大赛 信息安
  • iar 堆栈设置_Heap堆的理解以及在IAR中如何设置堆的大小

    堆栈的概念在脑海里已经存在有一段时间了 今天就测试来整理下Heap堆 栈以后再说 堆区不像全局变量和局部变量总是有指定的内存大小 它是为了在程序运行时动态分配内存而设定的一块区域 在程序运行时需要一块特定大小的内存空间来使用的时候 那么可以
  • spring获取DataSource数据源从Tomcat中配置的数据源获取方法--jndi方式

    1 配置目的 公司数据库提供内网与外网访问数据库 在家与公司都可以访问 这就需要分情况配置数据源信息 公司项目统一在tomcat中配置数据源信息 不同环境只需要更改tomcat数据源配置信息 不需要对项目配置信息进行修改 方便灵活 2 对于