最近在整理项目上的配置文件,正好看到了数据源配置,想着配置方式有多种,便趁热打铁,记录下常规的Tomcat配置数据源的方式
1.单个工程配置
找到Tomcat下的server.xml文件,在Context节点下,添加一个私有数据源
<Context docBase="TestApp" path="/TestApp" reloadable="true" source="org.eclipse.jst.jee.server:TestApp">
<Resource
name="jdbc/mysql"
scope="Shareable"
type="javax.sql.DataSource"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
url="jdbc:mysql://localhost:3306/test"
driverClassName ="com.mysql.jdbc.Driver"
username="root"
password="root"
/>
</Context>
这种配置方式虽然简单,但是重用性差
2.配置全局JNDI,并应用到单个项目上
第一步,找到Tomcat的server.xml中GlobalNamingResources节点,在该节点中添加一个全局JNDI配置
<Resource
name="jdbc/mysql"
scope="Shareable"
type="javax.sql.DataSource"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
url="jdbc:mysql://localhost:3306/test"
driverClassName ="com.mysql.jdbc.Driver"
username="root"
password="root"
/>
第二步,在server.xml中,找到此项目的Context节点,增加对全局数据源的引用Resource
<Context docBase="TestApp" path="/TestApp" reloadable="true">
<ResourceLink global="jdbc/mysql" name="jdbc/mysql" type="javax.sql.DataSource" />
</Context>
此方法虽然可控,但还是得针对每个项目具体配置
3.配置全局JNDI数据源,应用到所有Tomcat下的应用中
第一步:参考第二种的第一步
第二步:在Tomcat的context.xml文件的Context节点下,加一个ResourceLink节点,并对第一步配置的数据源进行引用
<Context>
<ResourceLink global="jdbc/mysql" name="jdbc/mysql" type="javax.sql.DataSource" />
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Context>