spring mvc项目,部署tomcat 中,使用jndi数据源

本文介绍了如何在Spring MVC项目中利用Tomcat 8.5的JNDI数据源进行配置,避免重复配置数据源。详细步骤包括在`context.xml`进行全局设置,`web.xml`添加配置,以及`applicationcontext.xml`中进行Spring的相应配置。注意`resourceRef`的配置是必需的,并且JNDI名称应遵循特定格式。官方文档提供了详细的配置选项和属性支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近部署项目时,有几个项目使用同一个数据源,不想在每个项目中都配置一边,所以就想用jndi数据源的方式,tomcat是8.5,spring是最新版本,配置如下:
conf/context.xml全局配置:

<Context>

    <!-- Default set of monitored resources. If one of these changes, the    -->
    <!-- web application will be reloaded.                                   -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>

    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    <!--
    <Manager pathname="" />
    -->

    <Resource name="test" auth="Container" type="javax.sql.DataSource"
               maxTotal="100" maxIdle="15" maxWaitMillis="10000"
               username="test" password="test" driverClassName="com.mysql.cj.jdbc.Driver"
               url="jdbc:mysql://localhost"/> 
</Context>

web.xml增加配置:

<resource-ref>
    <description>Datasource</description>
    <res-ref-name>test</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>

spring applicationcontext.xml配置:

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiName">
            <value>test</value>
        </property>
        <property name="resourceRef">  
            <value>true</value>  
        </property> 
    </bean>

resourceRef必须配置,否则报错

 Name [test] is not bound in this Context. Unable to find [test]

另外官网说要这么写:java:/comp/env/名字,改成下面这样:

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

我也测试了,可以用,网上搜到很多,基本都不能用,不知道是不是版本的问题。

官网配置文档,在这里
支持的属性,可以在这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值