spring配置下通过tomcat的jndi服务连接数据库 1、配置jndi文件文件位置%TOMCAT_HOME% /conf/Catalina/localhost文件名webapp工程的名字.xml。如:若工程名为jndidemo,则文件取名为jndidemo.xml。一般情况下该文件会存在。如果不存在可手动创建文件内容应该有如下格式:<?xml version="1.0" encoding="UTF-8"?><Context><Resourcename="jdbc/jndidemo"type="javax.sql.DataSource"driverClassName="oracle.jdbc.driver.OracleDriver"password="efnx"maxIdle="2"maxWait="5000"username="efnx"url="jdbc:oracle:thin:@(description=(address_list=(address=(protocol=TCP)(port=1521)(host=192.168.0.240)))(connect_data=(SERVER = DEDICATED)(SERVICE_NAME = db.efriendnet.com)))"maxActive="4"/></Context>根据具体需要修改相应内容。2、Spring配置文件在Spring配置文件中增加如下类似内容<bean id="jndiDataSource" class="org.springframework.jndi.JndiObjectFactoryBean"><property name="jndiName"><value>java:comp/env/jdbc/jndidemo</value></property></bean>3、持久化配置文件对持久化层进行依赖注入时,给dataSource属性注入jndiDataSource即可。如:<property name=”dataSource” ref=”jndiDataSource”/>4、数据库驱动最后别忘了将相应的数据库驱动拷贝到%TOMCAT_HOME%/common/lib下注意事项:根据tomcat版本不同,jndi配置文件的写法存在差异。现给出说明:版本:4.x 这个版本的配置文件一般都写在%TOMCAT_HOME% /conf/server.xml文件中。因为现在基本都在用5.x版本,所以这里就不做详细说明了。版本:5.0.xx这个版本将context的内容独立了出来放到了%TOMCAT_HOME% /conf/Catalina/localhost下,且不同的工程生成相应的配置文件,但文件格式和4.x类似:如:<?xml version='1.0' encoding='gb2312'?><Context displayName="Cactus Blog Web Application 1.0" docBase="D:/apache-tomcat-5.5.15/webapps/JndiDemo" path="/JndiDemo" workDir="work/Catalina/localhost/JndiDemo"><Resource auth="Container" description="Oracle DataBase" name="jdbc/jndidemo" type="javax.sql.DataSource"/><ResourceParams name="jdbc/jndidemo"><parameter><name>factory</name><value>org.apache.commons.dbcp.BasicDataSourceFactory</value></parameter><parameter><name>driverClassName</name><value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value></parameter><parameter><name>url</name><value>jdbc:microsoft:sqlserver://59.151.17.254:1500;DatabaseName=YeeYoo_DB</value></parameter><parameter><name>username</name><value>crm</value></parameter><parameter><name>password</name><value>crmyeeyoo</value></parameter><parameter><name>maxWait</name><value>-1</value></parameter><parameter><name>maxActive</name><value>10</value></parameter></ResourceParams></Context>版本5.5.xx该版本中给配置文件格式作了较大改动,使其更加简洁。格式内容如下:<?xml version="1.0" encoding="UTF-8"?><Context><Resourcename="jdbc/jndidemo"type="javax.sql.DataSource"driverClassName="oracle.jdbc.driver.OracleDriver"password="efnx"maxIdle="2"maxWait="5000"username="efnx"url="jdbc:oracle:thin:@(description=(address_list=(address=(protocol=TCP)(port=1521)(host=192.168.0.240)))(connect_data=(SERVER = DEDICATED)(SERVICE_NAME = db.efriendnet.com)))"maxActive="4"/></Context>请根据不同版本编写相应格式的配置文件否则会出现各种各样不同的问题。