Spring配置JNDI的解决方案


我的配置环境是:Spring + Tomcat + MySQL

说明:

1. $TOMCAT_HOME代表Tomcat的安装目录。

第一步:在Tomcat的$TOMCAT_HOME/conf/context.xml文件中配置数据源。

<Resource
    name="jdbc/TestDB"
    auth="Container"
    type="javax.sql.DataSource"
    maxActive="100"
    maxIdle="30"
    maxWait="10000"
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/TestDB"
    username="root"
    password="123456"
    />

参数说明:

name:JNDI的名称,下面Spring加载JNDI时会引用。

driverClassName:数据库驱动的类全名。

url:数据库连接的url。

username:数据库用户名。

password:数据库用户密码。

其余参数为连接优化参数,可自行Google查询。

第二步:把Mysql的驱动包拷贝到$TOMCAT_HOME/lib目录下。

第三步:让Spring加载JNDI配置,在Spring配置文件中加入如下配置:

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

参数说明:

jndiName:第一步中所配置单独JNDI名称。

resourceRef:可以让我们指定jndiName时,省略前缀“java:comp/env/”。

注意:

启动Tomcat容器测试应用是没有问题的,因为JNDI是配置在Tomcat容器中的,所以Junit测试会一直失败,如果哪位朋友有解决方案,可以告诉我下,谢谢!

Spring中如何配置Hibernate事务

Struts2整合Spring方法及原理

基于 Spring 设计并实现 RESTful Web Services

Spring-3.2.4 + Quartz-2.2.0集成实例

使用 Spring 进行单元测试

运用Spring注解实现Netty服务器端UDP应用程序

Spring 3.x 企业应用开发实战 PDF完整高清扫描版+源代码

本文永久更新链接地址

相关内容