tomcat配置多個數據源
應用場景:
公司tomcat伺服器中執行著多個工程,工程連結的mysql資料庫不同,所以每個工程的Spring總配置檔案中都配置了資料來源。
需求: 將資料來源統一拿到tomcat中配置。
本來指派給本人,由於開發任務比較緊,且百度的東西很亂,再就是隻寫配置不寫怎麼集合到MVC工程使用,一時半會沒整理。暫時推遲了兩天,然後,今天同事突然配置完了,還寫了完整的文件。鄙人懷著感激涕零的心情,把他的文件,從頭到尾,抄了過來~
配置步驟:
作者:皮皮龍(同事):
1、去tomact路徑下找到conf資料夾下中的server.xml,context.xml
2、在server.xml檔案中<Service>標籤裡面加上以下配置(紅色部分為tomcat路徑)
<!-- 配置debt_system資料庫-->
<Context path="/DebtProServices" docBase="D:/webapps/DebtProServices" reloadable="true">
</Context>
<!-- 配置debt_user資料庫-->
<Context path="/UserProServices" docBase="D:/webapps/UserProServices
</Context>
3、在context.xml檔案中<Context>標籤裡面加上以下配置(黃色底色為資料來源name,紅色部分為資料庫基本配置)
<!-- 配置debt_system資料庫-->
<Resource name="jdbc/DebtProServices" auth="Container" type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://192.168.0.35:3306/debt_system?useUnicode=true&characterEncoding=utf-8"
username="root" password="密碼" maxActive="100" maxIdle="30"/>
<!-- 配置debt_user資料庫-->
<Resource name="jdbc/UserProServices" auth="Container" type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://192.168.0.35:3306/debt_user?useUnicode=true&characterEncoding=utf-8"
username="root" password="密碼" maxActive="100" maxIdle="30"/>
4、在tomcat路徑下找到lib資料夾加入檔案(資料庫連線驅動,用自己專案中的即可),這裡添加了mysql-connector-java-5.1.44-bin.jar
5、在web工程下找到WebRoot/WEB-INF下找到applicationSpringContext.xml,在配置檔案中新增以下配置,(紅色部分為資料來源name)
<!-- 連結tomcat 資料庫連線池 start-->
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/DebtProServices"/>
</bean>
<!-- jdbcTemplate -->
<bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 連結tomcat 資料庫連線池 end-->