我有一个使用2个数据库的RoutingDataSource。我想让我的一些石英作业使用一个DB和其他DB的其他作业。
我在SPring4中使用Hibnernate4的XML配置。
我的石英豆
<bean id="emailJob" class="com.resolution.scheduler.service.quartz.EmailJob"
autowire="byName" />
<bean id="emailJobProxy" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="target" ref="emailJob" />
<property name="proxyInterfaces" value="java.lang.Runnable" />
<property name="interceptorNames" value="hibernateInterceptor" />
</bean>
<bean id="uniqueEmailJobDetail"
class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
<property name="jobClass"
value="com.kili.StatefulQuartzJob" />
<property name="jobDataAsMap">
<map>
<entry key="batchProcessorName" value="emailJobProxy" />
</map>
</property>
<property name="durability" value="true" />
</bean>
然后在我用crontrigger之后,所以不需要在这里显示。
Hibernate拦截器:
<bean id="hibernateInterceptor"
class="org.springframework.orm.hibernate4.support.OpenSessionInterceptor"
autowire="byName" />
路由数据源:
<bean id="dataSource" class="com.resolution.scheduler.service.DBRoutingDataSource">
<property name="targetDataSources">
<map key-type="com.resolution.scheduler.service.DBType">
<entry key="READ" value-ref="secondaryDataSource"/>
<entry key="READWRITE" value-ref="primaryDataSource"/>
</map>
</property>
<property name="defaultTargetDataSource" ref="primaryDataSource"/>
</bean>
可能的?