Intramart中可以定义三种数据源
- 系统数据源
- tenant数据源
- 共享(shared)数据源
前两种不用解释了。如果想连接系统和tenant之外的数据库,就要用到shared数据源。
使用方法
数据库链接信息的定义是在%imart%/WEB-INF/resin-web.xml里,在其中追加一个新的数据库连接。
登录intramart系统管理页面,追加一个shared数据源。
在spring的xml文件里,用下面的方式使用sherad数据源。
<bean id="dataSource" class="jp.co.intra_mart.framework.extension.spring.datasource.TenantDataSource" />
<bean id="sharedDataSource" class="jp.co.intra_mart.framework.extension.spring.datasource.SharedDataSource">
<constructor-arg name="connectId" value="shared数据源名称" />
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:/META-INF/mybatis/mybatis-config.xml" />
</bean>
<bean id="sharedSqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="sharedDataSource" />
<property name="configLocation" value="classpath:/META-INF/mybatis/mybatis-config.xml" />
</bean>
<!-- Mybatisのリポジトリ クラスのルートパッケージ -->
<mybatis:scan base-package="xxx.domain.repository" factory-ref="sqlSessionFactory"/>
<mybatis:scan base-package="xxx.domain.shared.repository" factory-ref="sharedSqlSessionFactory"/>