• [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路径。

  • 相关阅读:
    编译linux内核问题
    linux驱动路径
    plateform_driver_register和plateform_device_register区别
    linux总线、设备和设备驱动的关系
    linux设备驱动模型
    一堆Offer怎么选?这样做就不纠结了
    解决问题最简单的方法
    Android ScrollView嵌套GridView导致GridView只显示一行item
    84. Spring Boot集成MongoDB【从零开始学Spring Boot】
    接手别人的代码,死的心有吗?
  • 原文地址:https://www.cnblogs.com/kentyouyou/p/3098612.html
Copyright © 2020-2023  润新知