最近在整理项目上的配置文件,正好看到了数据源配置,想着配置方式有多种,便趁热打铁,记录下常规的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>