1. 程式人生 > >java hibernate多資料來源配置

java hibernate多資料來源配置

這裡的value值是讀取properties檔案裡面的值,因為是多資料來源 所以value值有多個

<!-- 配置資料來源 -->

<bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="url" value="${jdbc_url}" />
<property name="username" value="${jdbc_username}" />
<property name="password" value="${jdbc_password}" />


<!-- 初始化連線大小 -->
<property name="initialSize" value="0" />
<!-- 連線池最大使用連線數量 -->
<property name="maxActive" value="20" />
<!-- 連線池最小空閒 -->
<property name="minIdle" value="0" />
<!-- 獲取連線最大等待時間 -->
<property name="maxWait" value="60000" />
</bean>




<!--多資料來源配置  -->

<bean name="dataSource2" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="url" value="${jdbc_url2}" />
<property name="username" value="${jdbc_username2}" />
<property name="password" value="${jdbc_password2}" />


<!-- 初始化連線大小 -->
<property name="initialSize" value="0" />
<!-- 連線池最大使用連線數量 -->
<property name="maxActive" value="20" />
<!-- 連線池最小空閒 -->
<property name="minIdle" value="0" />
<!-- 獲取連線最大等待時間 -->
<property name="maxWait" value="60000" />
</bean>










<!-- 配置hibernate session工廠 因為是多資料來源,所以工廠也是多個-->

<!-- 配置hibernate session工廠 -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
<prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
<prop key="hibernate.use_sql_comments">${hibernate.use_sql_comments}</prop>
</props>
</property>


<!-- 自動掃描註解方式配置的hibernate類檔案 -->
<property name="packagesToScan">
<list>
<value>這裡寫要掃描的包名</value>
</list>
</property>


</bean>
<!-- 配置hibernate session工廠 -->
<bean id="sessionFactory2" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource2" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
<prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
<prop key="hibernate.use_sql_comments">${hibernate.use_sql_comments}</prop>
</props>
</property>


<!-- 自動掃描註解方式配置的hibernate類檔案 -->
<property name="packagesToScan">
<list>
<value>這裡寫要掃描的包名</value>
</list>
</property>


</bean>

    <!-- 配置事務管理器  因為是多資料來源,所有每個資料都有一個事物管理器-->
<!-- 配置事務管理器 -->
<bean name="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 配置事務管理器 -->
<bean name="transactionManager2" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory2"></property>

</bean>

這些都配置完畢後,剩下的就根據不同的sessionFactory 獲取不同的資料來源資料就可以了