在mule中,我有许多应用程序在同一容器上运行,该容器访问具有相同连接字符串/用户/密码集的jdbc连接器。
当然,任何应用都在其xml配置文件中配置了相同的全局连接器,因此存在代码重复。
有没有办法只为每个容器定义一次连接并从任何应用程序访问它?
答案 0 :(得分:2)
我会尝试这个:让一个应用程序创建数据源并将其存储在JNDI中,让其他应用程序从JNDI中获取它。
由于没有强大的应用程序启动排序保证,一个需要JNDI数据源的应用程序可能会很快启动。您需要将Spring配置为能够在发生故障时再次执行JNDI查找,并在Mule JDBC连接器上配置线程重试策略。
此外,您还需要在lib / user中安装数据源和数据库JAR,以便所有应用程序都可以使用它们。
答案 1 :(得分:1)
只需在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>
答案 2 :(得分:0)
我已经使用Domain项目解决了这种问题,在其中插入了其他项目已经使用的所有数据库配置。