Spring整合Hibernate
Spring整合Hibernate
1.引入我们所需的jar包
2.在applicationContext.xml中植入我们的数据源和sessionFactory工厂,将生成权交由Spring容器进行管理
(1)配置我们所需要连接的数据库的信息,将该信息存入jdbc.properties配置文件中
将该信息配置进applicationContext.xml中
(2)配置我们需要的数据源,这里我们使用c3p0数据源进行配置
首先需要引入c3p0的jar包
applicationContext.xml中配置c3p0数据源
(3).将由Spring容器负责生成SessionFactory,并为其注入dataSource属性
(4)生成我们的Dao 并为其注入sessionFactory属性
(5)生成我们的业务类 service 并为其注入dao属性,service层负责事务处理等
(6). 注册事务管理器
(7).使用切面进行事务管理
我们将applicationContext.xml文件进行了拆解,下面我们将提供一份完整的
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:aop="http://www.springframework.org/schema/aop" 5 xmlns:tx="http://www.springframework.org/schema/tx" 6 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 7 http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd 8 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> 9 10 <!-- 注册jdbc属性 --> 11 <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 12 <property name="location" value="classpath:jdbc.properties"></property> 13 </bean> 14 15 16 <!--注册c3p0数据源 --> 17 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> 18 <property name="driverClass" value="${jdbc.className}"></property> 19 <property name="jdbcUrl" value="${jdbc.url}"></property> 20 <property name="user" value="${jdbc.username}"></property> 21 <property name="password" value="${jdbc.password}"></property> 22 </bean> 23 24 <!-- 配置sessionFactory --> 25 <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 26 <property name="dataSource" ref="dataSource"></property> 27 <property name="hibernateProperties"> 28 <props> 29 <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop> 30 <prop key="hibernate.show_sql">true</prop> 31 <prop key="hibernate.current_session_context_class">org.springframework.orm.hibernate3.SpringSessionContext</prop> 32 <prop key="hibernate.format_sql">true</prop> 33 </props> 34 </property> 35 <property name="mappingDirectoryLocations" value="cn/hmy/beans/"></property> 36 </bean> 37 38 <!--配置StockDao --> 39 <bean id="stockDao" class="cn.hmy.dao.impl.StockDaoImpl"> 40 <property name="sessionFactory" ref="sessionFactory"></property> 41 </bean> 42 43 <!--配置StockService --> 44 <bean id="stockService" class="cn.hmy.service.impl.StockServiceImpl"> 45 <property name="stockDao" ref="stockDao"></property> 46 </bean> 47 48 <bean id="mytxManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 49 <property name="sessionFactory" ref="sessionFactory"></property> 50 </bean> 51 52 <!--使用切面进行事务管理 --> 53 <tx:advice id="txAdvice" transaction-manager="mytxManager"> 54 <tx:attributes> 55 <tx:method name="add*" isolation="DEFAULT" propagation="REQUIRED"/> 56 57 </tx:attributes> 58 </tx:advice> 59 60 61 <aop:config> 62 63 <aop:pointcut expression="execution(* *..service.*.*(..))" id="myStockPointcut"/> 64 <aop:advisor advice-ref="txAdvice" pointcut-ref="myStockPointcut"/> 65 66 </aop:config> 67 68 69 70 </beans>