- 课程目标
- 学习整合springmvc4+spring4+hibernate4框架。
- 适用人群
- 高级开发者。
- 课程简介
-
SpringMVC Spring Hibernate框架整合
1. 创建工程,拷贝所需jar
先整合spring+hibernate
2. 配置数据源 c3p0
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
//驱动
<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
//连接地址
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/liu"></property>
//账号
<property name="user" value="root"></property>
//密码
<property name="password" value=""></property>
</bean>
3.配置hibernate 的SessionFactory实例 这个bean由spring提供 LocalSessionFactoryBean
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<!-- 配置数据源 -->
<property name="dataSource" ref="dataSource"></property>
<!-- 创建hibernate.cfg.xml 里面添加方言 SQL显示等 配置hibernate配置文件的位置和名称 -->
<property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
<!-- 配置hibernate映射文件 -->
<property name="mappingLocations" value="classpath:com/liu/po/*.hbm.xml"></property>
</bean>
配置spring声明时事务:
4. 配置事务管理器 有spring提供 HibernateTransactionManager
<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
5. 配置事务属性(事务的传播特性)(通知),需要事务管理器transactionManager
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<!-- 事务的传播属性 -->
<tx:attributes>
<tx:method name="get*" read-only="true" />
<tx:method name="query*" read-only="true" />
<tx:method name="ad*" propagation="REQUIRED" />
<tx:method name="updat*" propagation="REQUIRED" />
<tx:method name="del*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
6. 配置事务的切点 AOP ,并把切点和事务属性关联起来
<aop:config>
<!-- 配置切点 -->
<aop:pointcut expression="execution(* com.liu.service.impl.*.*(..))" id="pointcut"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut"/>
</aop:config>
7. 如果需要单元测试必须添加<context:component-scan base-package="com"/>扫描器,因为使用的是注解
而且DAO需要注入SessionFactory 所以需要添加一个全局的default-autowire="byName" bean主动装配
配置springmvc
8. 先配置web.xml 配置前置控制器是一个servlet(DispatcherServlet)
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
9. 创建springmvc配置文件 【servlet-name】-servlet.xml
添加扫描器
<!-- springmvc 注解驱动 -->
<mvc:annotation-driven/>
<context:component-scan base-package="com"/>
引入bean.xml <import resource="classpath:beans.xml"/>