web.xml会加载contextConfigLocation配置,以zone为例
找到applicationContext-zone.xml配置文件,会加载mybatis的session工厂
这时候找到DataSource配置文件
会去找数据库连接池
jndi(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。命名服务将名称和对象联系起来,使得我们可以用名称
访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。
tomcat配置jndi有全局配置和局部配置。
接着找jndi的配置文件,配置文件我的是
会发现
环境配置再去tomcat服务器的配置文件下去找
这时候就能找到目标了
再去配置下找
实际代码为:
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" factory="com.alibaba.druid.pool.DruidDataSourceFactory" filters="wall,stat,slf4j" initialSize="5" logAbandoned="true" maxActive="30" maxPoolPreparedStatementPerConnectionSize="20" maxWait="10000" minEvictableIdleTimeMillis="300000" minIdle="5" name="SPT/zonedb" password="G3nkMcF6uStnM6bU" poolPreparedStatements="true" removeAbandoned="false" removeAbandonedTimeout="180" testOnBorrow="false" testOnReturn="false" testWhileIdle="true" timeBetweenEvictionRunsMillis="60000" type="javax.sql.DataSource" url="jdbc:mysql://192.168.1.30:3306/sptzonedb_dev?useUnicode=true&characterEncoding=UTF-8" username="testdbuser" validationQuery="SELECT 1"/>
实际上有可能是因为缺少jar依赖导致的