您的位置:首页 > 编程语言 > Java开发

静态代理 和 JDK动态代理

2010-12-24 11:14 411 查看
接口:UserManager.java

package com.springdemo.manager;

public interface UserManager {
public void add(String name,String password);
public void delete(String name);
public int count();
}


类:UserManagerImpl.java

代码

package com.springdemo.client;

import com.springdemo.manager.UserManager;
import com.springdemo.manager.UserManagerHandler;
import com.springdemo.manager.UserManagerImpl;

public class Client {
public static void main(String[] args) {
// UserManager userManager = new UserManagerProxy();
// userManager.add("name..", "pwd..");

UserManager userManager = new UserManagerImpl();
UserManagerHandler h = new UserManagerHandler();
userManager = (UserManager)h.newProxy(userManager);
userManager.add("name..", "pwd..");
userManager.count();
}

}


以这个动态代理的例子,说明一下Spring中AOP术语:

1.切面(Aspect),对应UserMenagerHandler这个类。

2. 连接点(JoinPoint),切面应用在某个方法上,这个方法就是连接点,如:UserManagerImpl类中的add()方法。

3. 处理逻辑(Advice),对应UserMenagerHandler中的 checkPower() 方法。

(处理逻辑(Advice)通常有:Before(前置通知),After(后置通知),Around(环绕通知),Throw(异常通知))

4. 切点(PointCut),连接点的集合,审明处理逻辑在哪些方法上应用。

5. 目标对象,对应UserManagerImpl的实例。

6. 把Aspect应用到Manager的方法上,叫置入。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: