ChinaUnix.net
相关文章推荐:

spring aop 拦截 方法

aop作为spring这个轻量级的容器中很重要的一部分,得到越来越多的关注,spring的Transaction就是用aop来管理的,今天就通过简单的例子来看看spring中的aop的基本使用方法。 首先确定将要Proxy的目标,在spring中默认采用JDK中的dynamic proxy,它只能够实现接口的代理,如果想对类进行代理的话,需要采用CGLIB的proxy。显然,选择“编程到接口”是更明智的做法,下面是将要代理的接口: public interface FooInterface { ...

by cyril1014 - Java文档中心 - 2007-06-18 23:28:37 阅读(670) 回复(0)

相关讨论

最近闲着没事,就把之前自己弄的springaop给看了一下,呵呵用的是jdk1.4的版本,这个例子只是用aop做了一个数据库打开和关闭的拦截。 1.定义一个数据库链接类如下: package db; import java.sql.Connection; import java.sql.SQLException; import javax.sql.DataSource; public class ConnectionManager { private DataSource datasource; public void setDatasource(DataSource ds){ this.datasource...

by zuzhiyang - Java文档中心 - 2008-06-06 11:47:55 阅读(679) 回复(0)

一,从代理机制初探aop 1,使用静态代理 #代理对象和被代理对象必须实现共同的接口 package com.biaoflying; public interface IHello { public void hello(String name); } #代理对象HelloProxy package com.biaoflying; import java.util.logging.*; public class HelloProxy implements IHello { private IHello helloObject; private Logger logger= Logger.getLogger(this.getClass().g...

by biaoflying - Java文档中心 - 2008-03-21 09:56:40 阅读(878) 回复(0)

事实:一个顾客买果酱. 你想在这个顾客买果酱之前说一句问候语:Dear,how do you do!. 这时候,我们可以用springaop来实现. 1. 定义一个接口Buy public interface Buy{ public void buySquish(String buyer); } 2. 实现这个接口 public class BuyImpl{ public void buySquish(String buyer){ System.out.println(buyer + " buy a squish!"); } } 3. 构造一个通知. public class BuyBefo...

by Danny1000 - Java文档中心 - 2007-08-15 15:24:19 阅读(433) 回复(0)

我们来分析一下这个Demo,它的业务逻辑是求图形的面积,如果把日志服务的代码直接写在业务逻辑中,那么业务逻辑就不是纯净的,而服务也不能被其他业务逻辑共享,所以我们需要把日志服务单独写成一个类,然后通过springaop实现,动态的把服务插入到业务逻辑中。理解了这点我们再来看IOC,其实IOC的核心思想就是面向接口编程;在这里求圆的面积和求正方形的面积是不一样的,那么为了减弱对象与对象的之间的依赖关系,我们需要对业务...

by cyril1014 - Java文档中心 - 2007-06-18 23:47:46 阅读(397) 回复(0)

使用aop,你可以将处理aspect的代码注入主程序,通常主程序的主要目的并不在于处理这些aspect。aop可以防止代码混乱。 为了理解aop如何做到这点,考虑一下记日志的工作。日志本身不太可能是你开发的主程序的主要任务。如果能将“不可见的”、通用的日志代码注入主程序中,那该多好啊。aop可以帮助你做到。 spring framework是很有前途的aop技术。作为一种非侵略性的,轻型的aop framework,你无需使用预编译器或其他...

by cyril1014 - Java文档中心 - 2007-06-18 23:44:00 阅读(787) 回复(0)

先不讨论aop的各种名词,也不作各种aop的比较,我将在例子中介绍各种名词。 1。先写一个javabean,就是target object。 package org.tatan.test; public class MessageBean { public void write() { System.out.print("aop example"); } } 2。写一个aop的advice类 MethodInterceptor是aop联盟的标准接口,它是最简单最实用的连接点(joinpoint),实现了around advice ,你可以在他返回前调用target的方法。 pack...

by nomigdweiwei - Java文档中心 - 2005-11-24 09:19:07 阅读(446) 回复(0)

哎,看了好几天 spring 的东东了,最开始是看朋友推荐的《精通spring》,没太看明白,也就看了前两章,感觉里面的很多概念讲得不明白,可能是因为它是我看的第一本spring的书吧?! 接下来下载了 夏昕的 springGuide.pdf ,虽然该开源书是未完成版,但里面的内容却是讲得非常的明白,当然可能与已经看过第一本一些内容有关吧;里面将IoC和aop的东西使用实际的代码进行模拟实现,自己也照着敲了一遍,基本上对概念是了解了。 根据我...

by lvjinhua - Java文档中心 - 2009-04-04 22:38:05 阅读(949) 回复(0)

IntroductionDemo Project实现在Some类中“添加”额外的行为。 package com.biaoflying; public interface ISome { public void doSome(); } package com.biaoflying; public class Some implements ISome { public void doSome(){ System.out.println("原来的职责。。。"); } } #添加额外行为的接口&类 package com.biaoflying; public interface IOther { public void doOther(); } package com.bi...

by biaoflying - Java文档中心 - 2008-03-22 19:41:10 阅读(701) 回复(0)

动态Pointcut,ControlFlowPointcut。以下Project,表示当some类调用了Target上的某个方法时,会加入某个advice。 package com.biaoflying; public interface IHello { public void helloNewbie(String name); public void helloMaster(String name); } package com.biaoflying; public class HelloSpeaker implements IHello { public void helloNewbie(String name){ System.out.println("Hello "+name+" n...

by biaoflying - Java文档中心 - 2008-03-22 18:46:48 阅读(348) 回复(0)

aop正在成为软件开发的下一个圣杯。使用aop,你可以将处理aspect的代码注入主程序,通常主程序的主要目的并不在于处理这些aspect。aop可以防止代码混乱。 为了理解aop如何做到这点,考虑一下记日志的工作。日志本身不太可能是你开发的主程序的主要任务。如果能将“不可见的”、通用的日志代码注入主程序中,那该多好啊。aop可以帮助你做到。 spring framework是很有前途的aop技术。作为一种非侵略性的,轻型的aop framework,...

by cys_web - Java文档中心 - 2006-12-15 10:28:30 阅读(249) 回复(0)