项目中用到了jndi数据源,这样的好处做到了项目代码与数据源的解耦,因为jndi数据源是配置在tomcat容器的配置文件里的,这样要更换数据源或者数据源信息发生变化,只需要修改配置文件就可以了,不需要修改项目,这就是jndi的优点,不过也有一些缺点,比如在进行Junit单元测试的时候是不需要启动容器的,这样就需要对数据源进行单独的配置。不过项目中都是这样用的,我总结一下项目中jndi数据源的配置方式:
1、在applictionContext.xml中声明数据源的配置 :
<!-- sqlServer数据源 -->
<import resource="classpath:dataSource_sqlServer.xml" />
2、项目里对应的建好这个数据源的xml文件:文件名就是上边声明的:dataSource_sqlServer
<!-- jndi数据源 -->
<bean id="dataSource_sqlServer" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/ff_middle" />
</bean>
3、在tomcat的conf/context.xml中配置数据源具体信息:
<Resource name="jdbc/ff_middle"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
maxActive="200"
minIdle="0"
maxIdle="5"
initialSize="5"
maxWait="30000"
testWhileIdle="true"
testOnBorrow="true"
testOnReturn="false"
validationQuery="SELECT 1"
validationInterval="9000"
timeBetweenEvictionRunsMillis="30000"
minEvictableIdleTimeMillis="60000"
removeAbandonedTimeout="900"
removeAbandoned="true"
logAbandoned="true"
jmxEnabled="true"
username="ff"
password="******"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://192.***.*.92:1433;databaseName=FFMiddledb"/>
填好相应的用户名,密码,数据库地址,端口号和数据库名,就可以用了,当然也可以配置多个jndi数据源,只需要在第2步中确定引用哪个数据源就可以了.转载请注明出处。