java hibernate多資料來源配置
阿新 • • 發佈:2019-02-16
這裡的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工廠 因為是多資料來源,所以工廠也是多個-->
<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 獲取不同的資料來源資料就可以了