ミュールでは、同じ接続文字列/ユーザー/パスワード セットを使用して jdbc コネクタにアクセスする同じコンテナで実行されている多くのアプリケーションがあります。
もちろん、どのアプリも xml 構成ファイルで同じグローバル コネクタを構成しているため、コードの重複があります。
コンテナーごとに 1 回だけ接続を定義し、任意のアプリからアクセスする方法はありますか?
ミュールでは、同じ接続文字列/ユーザー/パスワード セットを使用して jdbc コネクタにアクセスする同じコンテナで実行されている多くのアプリケーションがあります。
もちろん、どのアプリも xml 構成ファイルで同じグローバル コネクタを構成しているため、コードの重複があります。
コンテナーごとに 1 回だけ接続を定義し、任意のアプリからアクセスする方法はありますか?
1 つのアプリでデータソースを作成して JNDI に保存し、他のアプリで JNDI から取得します。
アプリの開始順序の強力な保証がないため、JNDI データソースを必要とする 1 つのアプリがすぐに開始される可能性があります。失敗した場合に JNDI ルックアップを再度実行できるように Spring を構成し、Mule JDBC コネクタでスレッド化された再試行ポリシーを構成する必要があります。
また、データソースとデータベースの JAR を lib/user にインストールして、すべてのアプリがそれらを使用できるようにする必要があります。
システムのどこかに xml で JDBC コネクタ用の Spring Bean を作成し、すべてのアプリケーションでそれをアプリにロードするだけです。
<spring:import resource="JDBC-beans.xml" />
およびxml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd ">
<!-- Initialization for data source -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/TEST"/>
<property name="username" value="root"/>
<property name="password" value="password"/>
</bean>
</beans>