Spring环境下JNDI的使用

Easter79
• 阅读 818

上一篇记录的使JNDI的简单使用,今天记录的是Spring + JNDI的配置。

一、配置JNDI的数据源

数据源有两种配置方式:

1、将数据源配置在tomcat等web容器中(以tomcat为例),这样做的好处就是运行在配置过JNDI数据源的web容器下的项目都可以使用该数据源,也就是说在容器中配置好数据源之后,数据源在该web容器中是共享的。

配置方法:在tomcat安装目录下,打开conf文件夹,打开context.xml文件,在标签之内插入如下代码:

<Resource name="mysql" auth="Container" type="javax.sql.DataSource"
    maxActive="100" maxIdle="30" maxWait="10000" username="root" password="root"
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8" />

  注:username,password,url需要根据自己的实际情况修改。

2、将数据源配置在项目中,这样做的好处就是为每一个项目单独指定一个数据源,也就是说,数据源不会共享。

配置方法:在项目路径下新建一个文件夹/src/main/webapp/META-INF/context.xml如果没有可自行创建。代码如下:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <Context reloadable="true">
 3     <Resource name="jdbc/mybatis" auth="Container" type="javax.sql.DataSource"
 4               maxActive="100" maxIdle="30" maxWait="10000"
 5               username="root" password="root"
 6               driverClassName="com.mysql.jdbc.Driver"
 7               url="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&amp;characterEncoding=utf-8&amp;autoReconnect=true&amp;useSSL=true"
 8               removeAbandoned="true"
 9               removeAbandonedTimeout="10"
10               logAbandoned="true"/>
11 </Context>

  注:username,password,url需要根据自己的实际情况修改。

二、Spring的配置文件

在spring-mvc.xml的配置文件中添加如下代码:

1     <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
2         <property name="jndiName" value="java:comp/env/mysql"/>
3     </bean>

注:java:comp/env是固定写法,后面的mysql是自己起的名字,我当作标识来理解,因为用到的是mysql数据库,说以实用mysql来标识。这里名字必须和context.xml文件中配置的名字相同,否则在启动项目的时候就会报错。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
我已经把它摸的透透的了!!!Spring 动态数据源设计实践,全面解析
Spring动态数据源动态数据源是什么?它能解决什么???在实际的开发中,同一个项目中使用多个数据源是很常见的场景。比如,一个读写分离的项目存在主数据源与读数据源。所谓动态数据源,就是通过Spring的一些配置来自动控制某段数据操作逻辑是走哪一个数据源。举个读写分离的例子,项目中引用了两个数据源,master、slave。通过Spring配置或扩展能力来
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Easter79 Easter79
3年前
spring使用jetty+jndi配置druid数据源
maven项目pom.xml配置1、配置druid的jar依赖:<dependency<groupIdcom.alibaba</groupId<artifactIddruid</artifac
Wesley13 Wesley13
3年前
CAS二次开发记录
创建项目下载cas4.1.10的源代码,里面有非常多的module,我们使用casserverwebapp来作为模块进行二次开发。自己创建一个项目,将casserverwebapp拷贝相关文件过来,注意整理pom的依赖。数据源的修改我们这里数据源使用的是jndi的方式,所以修改deployerConfigCo
Stella981 Stella981
3年前
Spring Boot 整合 JdbcTemplate 多数据源
学习在SpringBoot中使用JdbcTemplate多数据源来操作不同的数据库。JdbcTemplate是Spring自带的,虽然功能没有MyBatis强大,但使用简单。1创建工程并配置新建SpringBoot项目springbootjdbctemplatemulti,添加Web/J
Wesley13 Wesley13
3年前
.Net Core Configuration Etcd数据源
前言    .NetCore为我们提供了一套强大的Configuration配置系统,使用简单扩展性强。通过这套配置系统我们可以将Json、Xml、Ini等数据源加载到程序中,也可以自己扩展其他形式的存储源。今天我们要做的就是通过自定义的方式为其扩展Etcd数据源操作。何为Etdc    在使用etcd之前我们先介绍一下Etcd
Easter79 Easter79
3年前
Tomcat下的数据库连接池的配置与使用
实验环境:EclipseNeon.3(4.6.3)、MySQL、Tomcat9.0一、在web应用下的METAINF下新建context.xml文件,配置数据源。<?xmlversion"1.0"encoding"UTF8"?<Context<Resourcename"DBPool"
Stella981 Stella981
3年前
Spring4.0 + druid 配置动态配置数据源以及多数据源切换功能实现
数据源连接池使用druid其他的数据源基本原理相同spring中配置默认数据源连接池如下:<!数据源配置,使用BoneCP数据库连接池   <beanid"dataSourceOne"class"com.alibaba.druid.pool.DruidDataSource"initmethod"
Stella981 Stella981
3年前
Spring boot 多数据源
网上多是基于XML文件,本文使用基于配置类的方式使用动态数据源。多数据源原理Spring作为项目的应用容器,也对多数据源提供了很好的支持,当我们的持久化框架需要数据库连接时,我们需要做到动态的切换数据源,这些Spring的AbstractRoutingDataSource都给我们留了拓展的空间,可以先来看看抽象类AbstractR
Easter79
Easter79
Lv1
今生可爱与温柔,每一样都不能少。
文章
2.8k
粉丝
5
获赞
1.2k