spring_Spring+Hibernate_使用Annotation进行声明式事务管理

来源:互联网 发布:日本犯罪推理知乎 编辑:程序博客网 时间:2024/05/01 10:15

beans.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans         http://www.springframework.org/schema/beans/spring-beans.xsd         http://www.springframework.org/schema/context         http://www.springframework.org/schema/context/spring-context.xsd         http://www.springframework.org/schema/aop          http://www.springframework.org/schema/aop/spring-aop.xsd         http://www.springframework.org/schema/tx         http://www.springframework.org/schema/tx/spring-tx.xsd"><context:annotation-config /><!-- 自动扫描初始化对象 --><context:component-scan base-package="com.bjsxt" /><!-- 配置数据源DataSource --><beanclass="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="locations" value="classpath:jdbc.properties" /></bean><bean id="myDataSource" destroy-method="close"class="org.apache.commons.dbcp.BasicDataSource"><property name="driverClassName" value="${jdbc.driverClassName}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /></bean><!-- sessionFactory配置 --><bean id="sessionFactory"class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"><property name="dataSource" ref="myDataSource" /><property name="annotatedClasses"><list><value>com.bjsxt.model.User</value><value>com.bjsxt.model.Log</value></list></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop><prop key="hibernate.show_sql">true</prop></props></property></bean><!-- 事务配置Transaction --><bean id="txManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory" /></bean><tx:annotation-driven transaction-manager="txManager" /></beans>

package com.bjsxt.service;import javax.annotation.Resource;import org.springframework.stereotype.Component;import org.springframework.transaction.annotation.Transactional;import com.bjsxt.dao.LogDao;import com.bjsxt.dao.UserDao;import com.bjsxt.model.Log;import com.bjsxt.model.User;@Component("userService")public class UserService {private UserDao userDao;private LogDao logDao;public UserDao getUserDao() {return userDao;}@Resource(name = "userDaoImpl")public void setUserDao(UserDao userDao) {this.userDao = userDao;}public LogDao getLogDao() {return logDao;}@Resource(name = "logDaoImpl")public void setLogDao(LogDao logDao) {this.logDao = logDao;}@Transactionalpublic void add(User user) {userDao.save(user);Log log = new Log();log.setMesg("use save mesg");logDao.save(log);}}

统一事务管理,log抛异常,add内的方法都抛

阅读全文
0 0
原创粉丝点击