JNDI是J2EE的核心技术,JNDI的功能简单说就是可以简单的方法去查找某种资源。
spring + tomcat + JNDI 数据源配置
1、在Meta-INF目录下新建context.xml 内容为:
<?xml version="1.0" encoding="UTF-8"?>
<Context reloadable="true">
<Resource name="jdbc/oracle"
auth="Container"
type="javax.sql.DataSource"
username="scott"
password="tiger"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:orcl"
maxActive="100"
maxIdle="30"
maxWait="10000"/>
</Context>
2、在WEB-INF下新建jboss-web.xml
<!DOCTYPE jboss-web PUBLIC
"-//JBoss//DTD Web Application 5.0//EN"
"http://www.jboss.org/j2ee/dtd/jboss-web_5_0.dtd">
<jboss-web>
<!-- jndi数据源 -->
<context-root>jnditest</context-root>
<resource-ref>
<res-ref-name>jdbc/oracle</res-ref-name>
<jndi-name>java:jdbc/oracle</jndi-name>
</resource-ref>
</jboss-web>
3、在web.xml中引入jboss-web.xml
<!-- spring -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml,/WEB-INF/jboss-web.xml</param-value>
</context-param>
4、spring配置文件中配置datasource
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>jdbc/oracle</value>
</property>
<!-- 如果你不想使用 'java:comp/env/'前缀的话请设置下面的值为true, 默认值为false -->
<property name="resourceRef">
<value>true</value>
</property>
</bean>