我想做当我调用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.
相关推荐
Spring以其强大的依赖注入(DI)和面向切面编程(AOP)能力,而Hibernate则是一个优秀的对象关系映射(ORM)工具,能简化数据库操作。本教程将详细介绍如何在Spring框架中利用AOP实现对Hibernate的自动事务管理,以...
在SSH(Struts2 + Spring + Hibernate)架构中,Spring AOP常用于事务管理。当一个业务操作涉及多个数据库操作时,可以使用AOP在开始和结束时自动进行事务的开启和提交,如果出现异常则回滚事务,保证数据的一致性...
“工具”标签可能暗示这篇博客还介绍了与Spring AOP相关的辅助工具或实践技巧,例如如何利用AspectJ编译时或运行时 weaving,或者使用Spring AOP与其他工具(如Log4j、Hibernate)集成的方法。 综上所述,Spring ...
在项目中添加Spring和Hibernate的JAR包,包括Spring的核心库、AOP库以及Hibernate的主库和JDBC支持库。在Maven或Gradle的配置文件中,这可以通过添加依赖项来完成。 接下来,配置Spring的ApplicationContext。在`...
在SSH(Struts、Spring、Hibernate)架构中,Spring AOP可以很好地与其他组件集成,比如用于事务管理。对于大型企业级应用,AOP是必不可少的,它帮助保持代码的整洁,提高可维护性和可测试性。总的来说,正确配置和...
本篇将详细探讨JDK动态代理和Spring AOP,以及它们在实际应用中的作用。 首先,JDK动态代理是Java提供的一种在运行时创建代理对象的技术。它允许我们在不修改原有类的基础上,为已有接口添加额外的功能。动态代理的...
在SSH(Struts、Spring、Hibernate)经典企业级开发框架中,Spring AOP扮演着至关重要的角色,用于实现如日志记录、事务管理、权限控制等跨切面的关注点。 首先,了解AOP的基本概念。面向切面编程是一种编程范式,...
Spring提供了强大的依赖注入(DI)和面向切面编程(AOP),而Hibernate则是一个优秀的对象关系映射(ORM)解决方案,使得开发者可以方便地操作数据库。当我们需要在应用程序中进行事务管理时,Spring提供了一种声明...
Spring MVC 用于构建可扩展的、模块化的Web应用程序,Spring 提供了依赖注入(DI)和面向切面编程(AOP)等功能,而Hibernate 则是Java领域中的一个强大的对象关系映射(ORM)框架,简化了数据库操作。现在让我们...
Struts2、Hibernate和Spring AOP是Java Web开发中三个重要的框架,它们分别负责不同的职责。Struts2作为MVC(Model-View-Controller)框架,主要处理HTTP请求,实现业务逻辑与视图的解耦;Hibernate是一个持久化框架...
本项目“spring_aop麻雀”显然旨在展示如何在小型项目中整合Spring的AOP功能与Hibernate ORM框架,实现数据持久化。尽管项目规模不大,但涵盖了核心的功能模块,让我们逐一解析这些知识点。 1. **Spring AOP**:AOP...
在Java的Web开发领域,SSH(Struts、Spring、Hibernate)是一个常见的开源框架组合,用于构建高效、可扩展的企业级应用程序。在这个特定的场景中,我们聚焦于Spring框架中的AOP(面向切面编程)标签支持,这在SSH...
1. **声明式AOP**:通过XML或注解来定义切面(Aspect)、切入点(Pointcut)和通知(Advice)。这种方式非常灵活,适合大多数场景。 - XML配置示例: ```xml <aop:config> <aop:aspect id="loggingAspect" ref=...
- `spring-aop`:提供了面向切面的编程实现,让你可以定义方法拦截器和切入点,从而将切面组合在一起。 - `spring-tx`:提供了一致的事务管理接口,无论你是使用JDBC、Hibernate还是JPA。 - `spring-aspects`:与...
在本压缩包中,我们包含了四个与IT领域相关的文件,主要涵盖了Spring框架、面向切面编程(AOP)以及Hibernate ORM框架的相关知识。下面将分别对这些知识点进行详细阐述。 首先,Spring框架是Java企业级应用开发中的...
Spring_AOP框架.doc可能详细解释了如何定义切面、通知类型(前置、后置、环绕、异常和最终通知)、切入点表达式以及如何在实际应用中集成AOP。 2. **Spring 2.5中文参考手册**: 这份手册详细介绍了Spring 2.5版本...
使用Spring的面向切面编程(AOP)来定义事务切入点和顾问。例如: ```xml <aop:config> <aop:pointcut id="daoPointcut" expression="execution(* com.handson.dao.I*.*(..))"/> <aop:advisor advice-ref=...
Spring提供了对数据访问层的抽象,使得开发者可以方便地使用各种持久化技术,如JDBC、Hibernate、MyBatis等。Spring DAO模块提供了一组接口和异常处理机制,使得数据库操作更加统一和规范。在这个例子中,我们可能会...
Spring的IoC容器负责管理对象的生命周期和依赖关系,而AOP模块则允许开发者定义方法拦截器和切入点,实现代码的解耦。Spring3.0还引入了更多的新特性,如JSR-303 Bean Validation集成、更强大的数据绑定等。 ...
### AspectJ in Action: Enterprise AOP with Spring Applications #### 关键知识点概述 1. **Spring-AspectJ集成:**本书重点介绍了Spring框架与AspectJ相结合的技术优势及其在企业级应用中的强大功能。 2. **...