Spring 集成 hibernate 的事务管理,不用我们手动开启和提交事务了:
需要在xml文件头部的 xsi:schemaLocation 添加:
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
hibernate 配置文件中可设的配置:
hibernate.current_session_context_class=org.springframework.orm.hibernate3.SpringSessionContext
此为默认值,可不设
aop 的设置:
<bean id="transaction_manager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"> </property>
</bean>
<tx:advice id="muser_txAdvice" transaction-manager="transaction_manager">
<tx:attributes>
<tx:method name="*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
<bean id="muser_inter" class="org.aops.MuserAdvice">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<aop:config>
<aop:pointcut expression="execution(* org.services.impl.MuserServiceImpl.login(String, String))" id="login_pointCut" />
<aop:advisor advice-ref="muser_inter" pointcut-ref="login_pointCut" />
<aop:advisor advice-ref="muser_txAdvice" pointcut-ref="login_pointCut" />
</aop:config>
java 中的代码:
package org.aops;
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
import org.hibernate.SessionFactory;
public class MuserAdvice implements MethodInterceptor {
private SessionFactory sessionFactory;
@Override
public Object invoke(MethodInvocation arg0) throws Throwable {
System.out.println("in");
Object obj = arg0.proceed();
System.out.println("out");
return obj;
}
public SessionFactory getSessionFactory() {
return sessionFactory;
}
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
}
控制台的输出:
in
Hibernate:
select
muser0_.MUID as MUID1_,
muser0_.MUNAME as MUNAME1_,
muser0_.MUPWD as MUPWD1_
from
TEST.MUSER muser0_
where
muser0_.MUNAME=?
and muser0_.MUPWD=?
out
分享到:
相关推荐
通过本章节的学习,您应该能够掌握如何使用JdbcTemplate进行基本的数据库操作,以及如何在Spring中配置和使用声明式事务来管理复杂的业务流程。这些技能对于开发基于Spring框架的应用程序至关重要。
Hibernate自带了一套事务管理机制,但在Spring环境下,通常会由Spring接管事务管理,以便更好地协调应用中的事务策略。 结合Spring和Hibernate进行事务管理,我们可以通过以下步骤实现: 1. 配置Hibernate ...
AOP允许开发者定义“切面”,这些切面可以包含业务逻辑的各个部分,如日志记录、事务管理等。Spring通过代理模式实现了AOP,主要有JDK动态代理和CGLIB代理两种方式。在源码中,`Advisor`、`Pointcut`和`Advice`等...
注意:只是jdbc自带的jdbctample,不能 用于整合mybatis框架的事务,我整合了,事务不起作用!!!! 按老师的说法是基于xml方式,但不准确,因为也用到了注解 <aop:aspectj-autoproxy proxy-target-class="true">...
在Spring框架中,数据库连接池是管理数据库连接的关键组件,它能有效地提高应用程序的性能和资源利用率。在上述内容中,提到了两种常用的连接池实现:Apache的DBCP(BasicDataSource)和C3P0(ComboPooledDataSource...
Spring框架是Java开发中广泛应用的一个开源工具,它提供了丰富的功能,包括依赖注入、AOP(面向切面编程)、...通过Spring与Quartz的结合,我们可以方便地在Spring应用中管理和执行定时任务,提高系统的自动化程度。
《基于Spring Boot的律师事务所案件管理系统的设计与开发》是一篇深入探讨如何利用现代Web技术构建高效、便捷的律师事务所管理平台的学术论文。本文将详细阐述该系统的设计思路、技术选型、核心功能以及实现过程。 ...
3. **AOP(Aspect-Oriented Programming,面向切面编程)**:Spring提供了对AOP的支持,允许我们在不修改原有代码的情况下,插入额外的功能(如日志记录、事务管理)。切面定义了关注点的模块化,而切点是关注点在...
- `org.springframework.jdbc-3.0.5.RELEASE.jar`: 包含了Spring的JDBC抽象层,简化了数据库操作,提供了事务管理和其他数据访问服务。 2. **AspectJ库**: - `...
第三种方式是“使用iBatis2.3+Spring”,这里使用的是Spring自带的iBatis支持。由于Spring的ORM包中不包含MyBatis,因此这里采用的是旧版iBatis(即MyBatis的前身)。在这种模式下,配置文件会有所差异,且需要的jar...
在 Spring 中,可以使用声明式事务管理,通过 `<tx:annotation-driven>` 配置启用基于注解的事务管理。在 Service 方法上添加 `@Transactional` 注解,Spring 会自动进行事务的开启、提交或回滚。 5. **AOP 切面...
在传统的编程中,对象创建和对象间的依赖关系是由代码直接控制的,而在Spring中,这些依赖关系通过配置文件或者注解来定义,由Spring容器负责创建和管理对象,以及处理对象之间的依赖关系,从而降低了代码的耦合度,...
9. **AOP(面向切面编程)**:Spring的AOP模块允许我们在不修改源代码的情况下,对代码进行横切关注点的增强,如日志记录、事务管理等。在这个项目中,拦截器就是一种AOP的应用。 10. **配置**:Spring MVC的配置...
- 使用Spring自带的`DriverManagerDataSource` - 使用DBCP连接池 - 使用Tomcat提供的JNDI #### (三)框架图 虽然原始材料中未提供具体的框架图,但Spring的持久层封装通常涉及以下组件: - 数据源(DataSource...
- **AOP与Instrumentation**:Spring AOP模块支持面向切面编程,并允许定义方法拦截器和切入点,这使得诸如事务管理等常见服务可以非侵入性地被添加到应用程序中。Instrumentation模块则提供了类加载时间的增强机制...
Spring内置数据源配置是指使用Spring自带的数据源实现,这在不需要特别复杂的数据源配置时尤其有用。配置时,只需在Spring配置文件中添加对应的数据源bean定义即可。 ```xml ***mons.dbcp.BasicDataSource"> ...
在学生宿舍管理系统中,Spring Boot为业务逻辑处理和数据访问提供了强大的支持。 3. **Spring Framework**: Spring是Java企业级应用开发的重要框架,提供依赖注入(Dependency Injection)和面向切面编程(AOP)等...
`Spring`框架是Java开发中的一个核心组件,它提供了诸如依赖注入、AOP(面向切面编程)以及事务管理等功能。`Quartz`是一个开源的工作调度器,可以用来执行定时任务。这里我们讨论的是如何在`IDEA`中结合`Spring`和`...
《SpringBoot实战(自带目录)第四版》是针对Java开发者的一本深度技术指南,主要聚焦于Spring Boot框架的使用和实践。Spring Boot是由Pivotal团队提供的全新框架,旨在简化Spring应用的初始搭建以及开发过程。它...
同时,spring-tx-x.x.x.jar是Spring的事务管理模块,支持编程式和声明式事务管理。为了整合MyBatis,还需要spring-jdbc-x.x.x.jar,它提供了对JDBC的抽象层,简化了数据库操作。 连接池是数据库性能优化的重要手段...