jndi(Java Naming and Directory Interface)
Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。命名服务将名称和对象联系起来,使得我们可以用名称访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。
tomcat配置jndi有全局配置和局部配置。
一:只说全局配置
a):在tomcat的conf文件夹下的context.xml配置文件中加入
<Resource
auth="Container"
name="jdbc/awp"
type="javax.sql.DataSource"
driverClassName="com.sybase.jdbc3.jdbc.SybDriver"
username="awp"
password="awpawp"
url="jdbc:sybase:Tds:10.112.7.19:2639/awpdb"
maxIdle="2"
maxWait="5000"
maxActive="10"/>
b):在项目的web.xml中加入资源引用:
<resource-ref>
<description>JNDI DataSource</description>
<res-ref-name>jndi/awp</res-ref-name>
<res-ref-type>javax.sql.DataSource</res-ref-type>
<res-auth>Container</res-auth>
</resource-ref>
其中res-ref-name值要和context.xml的name值一致.
还有一些偏题的记录下笔记
DataSource可以交给spring容器管理。可以注入给sessionFactory
applicationContext-at.xml
<bean id="DataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jdbc/awp</value>
</property>
</bean>
使用的IBatis
<!-- 让SqlMapClientFactoryBean支持JDBC事务 -->
<bean id="sqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation">
<value>/WEB-INF/ibatis/sql-map-config.xml</value>
</property>
<property name="transactionConfigClass"
ref="transactionConfigClass" />
<property name="dataSource" ref="DataSource" /><--注入上面的数据源-->
</bean>