今天说一下昨天的感受,事情是这样的:
在项目即将验收钱,架构师群发了一个消息,所有操作海量数据表的Dao在执行查询之前要加上这么一句:
this.getHibernateTemplate().setMaxResults(1000);
并列出一个海量数据表的清单,大概40-50个左右,由于时间仓促,情况太突然,大家也没有多想,于是改吧。这么十几号人改了大概半小时。好,也算是勉强混过去了。
可是事后一看代码,同一个dao的N多个方法都加上了这一句,唉。。。。。
学习spring的时候书上教导spring的aop是如何如何的好,如何如何的帮助OO解决问题,但是由于涉足java不久,大家的代码也是那样的写,自己也就跟着这么写,说实话感受真的不是太深刻。但是后来我突然想到了既然是要在执行方法之前加上那么一句,干脆用BeforeAdvice试试看吧。于是修改成:
public void before(Method method, Object[] args, Object target)
throws Throwable {
if (target instanceof AbstractDAO) {
AbstractDAO dao = (AbstractDAO) target;
dao.getHibernateTemplate().setMaxResults(1000);
}
}
<bean id="daoBeforeAdvice" class="com.km.dao.hibernate.DaoBeforeAdvice"/>
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames"><value>*Dao</value></property>
<property name="interceptorNames">
<list>
<value>daoBeforeAdvice</value>
</list>
</property>
</bean>
一调试,居然和预期的结果一样,想想昨晚的狼狈,唉,一切尽在不言中。这次真正感受到了Spring Aop的威力。
分享到:
相关推荐
spring aop jar 包
spring aop spring aop spring aop spring aop spring aop spring aop spring aop spring aop spring aop
spring-aop-1.1.1.jar spring-aop-1.2.6.jar spring-aop-1.2.9.jar spring-aop-2.0.2.jar spring-aop-2.0.6.jar spring-aop-2.0.7.jar spring-aop-2.0.8.jar spring-aop-2.0.jar spring-aop-2.5.1.jar spring-aop-...
描述一下Spring AOP? 在Spring AOP中关注点(concern)和横切关注点(cross-cutting concern)有什么不同? AOP有哪些可用的实现? Spring中有哪些不同的通知类型(advice types)? Spring AOP 代理是什么? 引介...
一、适合人群 1、具备一定Java编程基础,初级开发者 2、对springboot,mybatis,mysql有基本认识 3、对spring aop认识模糊的,不清楚如何实现Java 自定义注解的 ...4、spring boot,mybatis,druid,spring aop的使用
基于注解实现SpringAop基于注解实现SpringAop基于注解实现SpringAop
springaop依赖的jar包,spring版本2.5.6,如果需要,可以下载使用,欢迎各位评论指出不足
spring aop的demo spring aop的demo
Spring框架的关键组件之一是面向方面编程(AOP)框架。 面向方面的编程需要将程序逻辑分解成不同的部分。 此教程将通过简单实用的方法来学习Spring框架提供的AOP/面向方面编程。
死磕Spring之AOP篇 - Spring AOP两种代理对象的拦截处理(csdn)————程序
Spring AOP 几个不同使用方法的完整例子,使用Junit4c测试, 在我的博客上有不同配置组合的说明,可以参考
AOP流程源码分析-SpringAOP中定义的类图AOP流程源码分析-SpringAOP中定义的类图AOP流程源码分析-SpringAOP中定义的类图AOP流程源码分析-SpringAOP中定义的类图AOP流程源码分析-SpringAOP中定义的类图AOP流程源码分析...
Spring aop Spring aop
spring aop切面拦截指定类和方法实现流程日志跟踪 一般情况下,在不侵入业务代码的情况下,需要做流程日志跟踪是比较合理的 采用springaop切面思想
springAOP详解
springAOP所需jar包 springAOP所需jar包 springAOP所需jar包 springAOP所需jar包 springAOP所需jar包
NULL 博文链接:https://306963591.iteye.com/blog/1129837
开发工具 spring-aop-4.3.6.RELEASE开发工具 spring-aop-4.3.6.RELEASE开发工具 spring-aop-4.3.6.RELEASE开发工具 spring-aop-4.3.6.RELEASE开发工具 spring-aop-4.3.6.RELEASE开发工具 spring-aop-4.3.6.RELEASE...
Spring AOP简单demo 入门级的 advice
AOP的意思就是面向切面编程。本文主要是通过梳理JDK中自带的反射机制,实现 AOP动态代理模式,这也是Spring AOP 的实现原理