0 0

Spring aop 切入Hibernate0

我想做当我调用Hibernate的Session.createQuery(hql)的时候,如果hql是update,则我加自动增加更新时间.
以下是我的配置
<bean id="aspect" class="org.bigbean.common.aop.DaoAspect" />
	<aop:config>
		<aop:aspect ref="aspect">			
			<aop:around pointcut="execution(* org.hibernate.Session.createQuery(java.lang.String))"
				method="aroundAdvice" />
		</aop:aspect>
	</aop:config>

public Object aroundAdvice(ProceedingJoinPoint pjp) throws Throwable {
		System.out.println("aroundAdvice");
		String hql = (String) pjp.getArgs()[0];
		if(hql.indexOf("update") > -1){
			StringBuilder sb = new StringBuilder();
			int temp = hql.indexOf("where");
			if(temp > -1){
				sb.append(hql.subSequence(0, temp));
				sb.append(",updateDate = :updateDate ");
				sb.append(hql.substring(temp));
			}else{
				sb.append(",updateDate = :updateDate ");
			}
			hql = sb.toString();
			mark = true;
		}
		Object retVal = pjp.proceed(new Object[] { hql });
		return retVal;
	}

但发现运行时并没有执行aroundAdvice.
2013年1月29日 14:27

1个答案 按时间排序 按投票排序

0 0

因为Session不是spring IoC容器管理的,可以考虑aspectj 而不是spring aop

2013年1月30日 05:28

相关推荐

    Spring通过AOP实现Hibernate自动事务.rar

    Spring以其强大的依赖注入(DI)和面向切面编程(AOP)能力,而Hibernate则是一个优秀的对象关系映射(ORM)工具,能简化数据库操作。本教程将详细介绍如何在Spring框架中利用AOP实现对Hibernate的自动事务管理,以...

    spring切面AOP所使用的jar包

    在SSH(Struts2 + Spring + Hibernate)架构中,Spring AOP常用于事务管理。当一个业务操作涉及多个数据库操作时,可以使用AOP在开始和结束时自动进行事务的开启和提交,如果出现异常则回滚事务,保证数据的一致性...

    spring-aop AND proxy

    “工具”标签可能暗示这篇博客还介绍了与Spring AOP相关的辅助工具或实践技巧,例如如何利用AspectJ编译时或运行时 weaving,或者使用Spring AOP与其他工具(如Log4j、Hibernate)集成的方法。 综上所述,Spring ...

    Spring-hibernate结合使用全xml配置方式

    在项目中添加Spring和Hibernate的JAR包,包括Spring的核心库、AOP库以及Hibernate的主库和JDBC支持库。在Maven或Gradle的配置文件中,这可以通过添加依赖项来完成。 接下来,配置Spring的ApplicationContext。在`...

    spring 配置aop时需要的jar包

    在SSH(Struts、Spring、Hibernate)架构中,Spring AOP可以很好地与其他组件集成,比如用于事务管理。对于大型企业级应用,AOP是必不可少的,它帮助保持代码的整洁,提高可维护性和可测试性。总的来说,正确配置和...

    从JDK动态代理到spring AOP

    本篇将详细探讨JDK动态代理和Spring AOP,以及它们在实际应用中的作用。 首先,JDK动态代理是Java提供的一种在运行时创建代理对象的技术。它允许我们在不修改原有类的基础上,为已有接口添加额外的功能。动态代理的...

    spring_AOP.rar_876.aop_java aop_spring_aop

    在SSH(Struts、Spring、Hibernate)经典企业级开发框架中,Spring AOP扮演着至关重要的角色,用于实现如日志记录、事务管理、权限控制等跨切面的关注点。 首先,了解AOP的基本概念。面向切面编程是一种编程范式,...

    spring3,hibernate4 配置声明式事务管理(annotation方式)

    Spring提供了强大的依赖注入(DI)和面向切面编程(AOP),而Hibernate则是一个优秀的对象关系映射(ORM)解决方案,使得开发者可以方便地操作数据库。当我们需要在应用程序中进行事务管理时,Spring提供了一种声明...

    springmvc+spring3+hibernate4框架整合完整版

    Spring MVC 用于构建可扩展的、模块化的Web应用程序,Spring 提供了依赖注入(DI)和面向切面编程(AOP)等功能,而Hibernate 则是Java领域中的一个强大的对象关系映射(ORM)框架,简化了数据库操作。现在让我们...

    struts2+hirbenate+SpringAOP

    Struts2、Hibernate和Spring AOP是Java Web开发中三个重要的框架,它们分别负责不同的职责。Struts2作为MVC(Model-View-Controller)框架,主要处理HTTP请求,实现业务逻辑与视图的解耦;Hibernate是一个持久化框架...

    spring_aop麻雀

    本项目“spring_aop麻雀”显然旨在展示如何在小型项目中整合Spring的AOP功能与Hibernate ORM框架,实现数据持久化。尽管项目规模不大,但涵盖了核心的功能模块,让我们逐一解析这些知识点。 1. **Spring AOP**:AOP...

    对Spring的AOP标签的支持

    在Java的Web开发领域,SSH(Struts、Spring、Hibernate)是一个常见的开源框架组合,用于构建高效、可扩展的企业级应用程序。在这个特定的场景中,我们聚焦于Spring框架中的AOP(面向切面编程)标签支持,这在SSH...

    spring aop配置

    1. **声明式AOP**:通过XML或注解来定义切面(Aspect)、切入点(Pointcut)和通知(Advice)。这种方式非常灵活,适合大多数场景。 - XML配置示例: ```xml &lt;aop:config&gt; &lt;aop:aspect id="loggingAspect" ref=...

    Spring3+Hibernate4框架搭建

    - `spring-aop`:提供了面向切面的编程实现,让你可以定义方法拦截器和切入点,从而将切面组合在一起。 - `spring-tx`:提供了一致的事务管理接口,无论你是使用JDBC、Hibernate还是JPA。 - `spring-aspects`:与...

    SpringGuide-AOP文档-hibernate

    在本压缩包中,我们包含了四个与IT领域相关的文件,主要涵盖了Spring框架、面向切面编程(AOP)以及Hibernate ORM框架的相关知识。下面将分别对这些知识点进行详细阐述。 首先,Spring框架是Java企业级应用开发中的...

    Spring中文 开发手册+aop讲解.zip

    Spring_AOP框架.doc可能详细解释了如何定义切面、通知类型(前置、后置、环绕、异常和最终通知)、切入点表达式以及如何在实际应用中集成AOP。 2. **Spring 2.5中文参考手册**: 这份手册详细介绍了Spring 2.5版本...

    三大框架整合(Spring+Hibernate+Struts1/Struts2)

    使用Spring的面向切面编程(AOP)来定义事务切入点和顾问。例如: ```xml &lt;aop:config&gt; &lt;aop:pointcut id="daoPointcut" expression="execution(* com.handson.dao.I*.*(..))"/&gt; &lt;aop:advisor advice-ref=...

    spring_aop.rar_spring-dao

    Spring提供了对数据访问层的抽象,使得开发者可以方便地使用各种持久化技术,如JDBC、Hibernate、MyBatis等。Spring DAO模块提供了一组接口和异常处理机制,使得数据库操作更加统一和规范。在这个例子中,我们可能会...

    Struts1.3_Spring3.0_hibernate3.3示例

    Spring的IoC容器负责管理对象的生命周期和依赖关系,而AOP模块则允许开发者定义方法拦截器和切入点,实现代码的解耦。Spring3.0还引入了更多的新特性,如JSR-303 Bean Validation集成、更强大的数据绑定等。 ...

    AspectJ in Action: Enterprise AOP with Spring Applications

    ### AspectJ in Action: Enterprise AOP with Spring Applications #### 关键知识点概述 1. **Spring-AspectJ集成:**本书重点介绍了Spring框架与AspectJ相结合的技术优势及其在企业级应用中的强大功能。 2. **...

Global site tag (gtag.js) - Google Analytics