Spring4+Hibernate4

来源:互联网 发布:linux中的ll 编辑:程序博客网 时间:2024/05/16 05:06


简介:

1.使用注释的方式获取注册bean

2.基于是spring的aop,不需要hibernate单独使用的SessionFactory,Spring来管理Session的事务管理,需要在使用session的dao上加@Transactional

3.使用此功能来自动扫描注册bean

<!-- <context:annotation-config /> --><context:component-scan base-package="com.dao" />


Spring配置文件:

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"xmlns:tx="http://www.springframework.org/schema/tx"> <!-- <context:annotation-config /> --> <context:component-scan base-package="com.dao" /> <context:property-placeholder location="classpath:mysql.properties" /> <!-- 配置数据源 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"  destroy-method="close">  <property name="driverClassName" value="${jdbc.driver}" />  <property name="url" value="${jdbc.url}" />  <property name="username" value="${jdbc.username}" />  <property name="password" value="${jdbc.password}" /> </bean> <bean id="sessionFactory"  class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">  <property name="dataSource">   <ref bean="dataSource" />  </property>  <property name="hibernateProperties">   <props>    <prop key="hibernate.dialect">     org.hibernate.dialect.MySQLDialect    </prop>    <prop key="hibernate.autoReconnect">true</prop>   </props>  </property>  <property name="mappingResources">   <list>    <value>com/pojo/User.hbm.xml</value>   </list>  </property> </bean> <bean id="transactionManager"  class="org.springframework.orm.hibernate4.HibernateTransactionManager">  <property name="sessionFactory" ref="sessionFactory" /> </bean> <tx:annotation-driven transaction-manager="transactionManager" /></beans>

dao层:

package com.dao;import javax.annotation.Resource;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.springframework.stereotype.Repository;import org.springframework.transaction.annotation.Transactional;import com.pojo.User;@Repository("userDAO")@Transactionalpublic class UserDAO {@Resourceprivate SessionFactory sessionFactory;public void insert(User user) {Session session=sessionFactory.getCurrentSession();session.save(user);}}




4 0