JNDI 即Java命名目录接口 Java Naming Dictory Interface
Spring.xml配置文件
<bean name="dbsource1" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="jndi" value="java:comp/env/jdbc/db1"/>
</bean>
<bean name="dbsource2" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="jndi" value="java:comp/env/jdbc/db2"/>
</bean>
context.xml配置
在tomcat中配置context.xml文件
<!--配置jndi : name 与 spring配置文件中对应,容器会根据name去加载对应的配置文件-->
<!--由容器进行授权及管理,指的用户名和密码是否可以在容器上生效-->
<!---->
<!--type: 此名称所代表的类型
driverClassName: 数据库连接的驱动程序
usrname: 数据库连接的用户名
maxActive: 表示一个数据库在此服务器上能打开的最大连接数
maxIdle: 表示数据库在此服务器上维持的最小连接数
minIdle: 连接池最小空闲
maxWait: 最大等待时间,单位为毫秒
validationQuery: 测试链接的sql
password="数据库的密码"
testOnBorrow: 申请连接时执行validationQuery检测连接是否有效, 启用这个配置会降低性能
testOnReturn: 归还连接时执行validationQuery检测连接是否有效,启用这个配置会降低性能
testWhileIdle: 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,
执行validationQuery检测连接是否有效。
timeBetweenEvictionRunsMillis: 间隔多久进行一次检测,检测哪些需要关闭的空闲连接
minEvictableIdleTimeMillis: 连接在池中的最小生产时间
removeAbandoned: 打开/关闭removeAbandoned功能
removeAbandonedTimeout: 指定连接建立后的强制关闭时间,单位为秒
logAbandoned: 闭abanded连接时输出错误日志,指定发生removeabandoned的时候,是否记录当前线程的堆栈信息到日志中
filters: 监控统计数据库(mergeStat)
url: 数据库所在地址
-->
<Resource name="jdbc/db1" auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.OracleDriver"
username="test"
maxActive="20"
minIdle="0"
maxWait="60000"
validationQuery = "select 1 from dual"
password="test$2018"
testOnBorrow="false"
testOnReturn="false"
testWhileIdle="true"
timeBetweenEvictionRunsMillis="60000"
minEvictableIdleTimeMillis="25200000"
removeAbandoned="true"
removeAbandonedTimeout="1800"
logAbandoned="true"
filters="mergeStat"
url="jdbc:oracle:thin:@127.0.0.1:1521:oral"/>
参考
https://www.cnblogs.com/guanym/p/5411561.html
https://blog.csdn.net/u013960139/article/details/51830050