[tomcat] 配置数据源介绍

从tomcat5.5开始,内置了DBCP数据源的实现。tomcat数据源提供两种配置方式,两种数据源的访问范围不同,

1.全局数据源:顾名思义在tomcat应用下的所有web都可以访问。

2.局部数据源:适用单个web应用

★★  不管以那种方式都得提供特定数据源的jdbc驱动。

此处用的mysql. 将mysql驱动包放到%TOMCAT_HOME%/lib中,web应用中也需要驱动包。

★★  全局数据源配置方法:

1.%TOMCAT_HOME%/conf/server.xml

  <GlobalNamingResources>   

     <Resource name="jdbc/dstest" auth="Container"   type="javax.sql.DataSource"   driverClassName="com.mysql.jdbc.Driver"   url="jdbc:mysql://localhost:3306/javaee"   username="root" password="root" maxActive="5"   maxIdle="2" maxWait="10000"/>

  </GlobalNamingResources>

2.%TOMCAT_HOME%/conf/context.xml

<Context>

<WatchedResource>WEB-INF/web.xml</WatchedResource>

<ResourceLink name="jdbc/dstest"  type="javax.sql.DataSource"  global="jdbc/dstest"/> <!--全局数据源-->

<Context docBase="D:\workspace2\javaee\web" path="/javaee" reloadable="true"/>  <!--配置web路径-->

</Context>

★★  局部数据源配置:<推荐>

1.自定义web部署文件,配置数据源:

新建%TOMCAT_HOME%/conf/Catalina/localhost/javaee.xml  新建的名字要与应用名一致,不一致的话tomcat启动时会出异常!

javaee.xml<已配置web路径,下面会介绍>:

<?xml version="1.0" encoding="GBK"?>

<Context docBase="D:\workspace2\javaee\web" privileged="true"> 

<!-- 其中name指定数据源在容器中的JNDI名 

driverClassName指定连接数据库的驱动

url指定数据库服务的URL 

username指定连接数据库的用户名 

password指定连接数据库的密码 

maxActive指定数据源最大活动连接数 

maxIdle指定数据池中最大的空闲连接数

maxWait指定数据池中最大等待获取连接的客户端  -->

<Resource name="jdbc/dstest" auth="Container"   type="javax.sql.DataSource"  driverClassName="com.mysql.jdbc.Driver"   url="jdbc:mysql://localhost:3306/javaee"   username="root" password="root" maxActive="5"   maxIdle="20" maxWait="10000"/>    

<!--<Context docBase="D:\workspace2\javaee\web" path="/javaee" reloadable="true"/>-->

</Context>

若javaee.xml中Content 不加docBase="D:\workspace2\javaee\web",则需要配置web应用所在路径。   

1.可配置在javaee.xml文件中,添加一段:  

<Context docBase="D:\workspace2\javaee\web" path="/javaee" reloadable="true"/>

2.可配置在 %TOMCAT_HOME%/conf/context.xml 中:

<Context>

<WatchedResource>WEB-INF/web.xml</WatchedResource>

<Context docBase="D:\workspace2\javaee\web" path="/javaee" reloadable="true"/>

</Context>

注:

在tomcat的conf/Catalina/localhost目录下配置项目路径,tomcat启动是会直接根据配置去加载项目。      docBase:应用所在路径web目录。    

path:访问的相对路径。    

reloadable="false"表示当应用程序中的内容发生更改之后服务器不会自动加载,这个属性在开发阶段通常都设为true,方便开发,在发布阶段应该设置为false,提高应用程序的访问速度。

★★  总结:(全局数据源&&局部数据源)     1.都需要数据库驱动包。     2.都需要指明项目路径。

★★  步骤:         

全局数据源:需要在server.xml中的GlobalNamingResources中配置数据源,在context.xml中引用数据源。并配置web路径。      

局部数据源:可在/conf/localhost/新建与web应用名同名的xml文件配置数据源。

配置web路径有三种方式:      

1.在新建的xxx.xml中添加docBase属性指明应用所在路径。如:

<Context docBase="D:\workspace2\javaee\web" privileged="true">      

2.在新建的xxx.xml中添加<Context docBase="D:\workspace2\javaee\web" path="/javaee" reloadable="true"/>      

3.在/conf/context.xml中添加<Context docBase="D:\workspace2\javaee\web" path="/javaee" reloadable="true"/>            

第一种之所以没有配Path,是因为这种方式服务器会使用.xml的名字作为path属性的值。所以不需要配置path路径。

原文地址:https://www.cnblogs.com/kentyouyou/p/3098612.html