您的位置:首页 > 运维架构 > Tomcat

[tomcat] 配置数据源介绍

2013-05-25 12:47 447 查看
从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路径。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: