testOnBorrow:
如果池中存在空闲可用的连接实例,则需要连接时依据后进先出策略挑选一个连接实例,并激活返回给客户端。如果激活失败或者testOnBorrow被设置成true并且校验失败,则连接实例被废弃,继续检查下一个可用的连接实例,直到找到一个合法可用的连接实例或者连接池再没有可用的连接实例了。
testOnReturn:
如果在业务层设置了maxIdle参数,并且池中的空闲实例数达到这个数值,返回的连接实例将被废弃。如果testOnReturn设置为true,连接实例在返回给连接池前需要做校验,如果校验失败,则实例废弃。否则,连接将被根据先进先出或者后进先出策略归还给线程池。
testWithIdIe:
由于testOnBorrow和testWhileIdle都是检查连接有效性,testOnBorrow是每次获取连接必定检查,testWhileIdle是超过一定时间才检查,所以当开启testOnBorrow时,testWhileIdle将不会执行。