骡子 - 使全球元素更加全球化

时间:2013-09-20 11:00:51

标签: mule mule-studio

在mule中,我有许多应用程序在同一容器上运行,该容器访问具有相同连接字符串/用户/密码集的jdbc连接器。

当然,任何应用都在其xml配置文件中配置了相同的全局连接器,因此存在代码重复。

有没有办法只为每个容器定义一次连接并从任何应用程序访问它?

3 个答案:

答案 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项目解决了这种问题,在其中插入了其他项目已经使用的所有数据库配置。