ITCAST视频-Spring学习笔记(使用JDK中的Proxy技术实现AOP功能)
2009-02-09 22:24
1321 查看
感谢ITCAST发布的免费视频。
AOP—代理对象
1. 拦截所有业务方法
2. 判断用户是否有权限,由权限就允许它执行业务方法,没有权限不允许执行业务方法。
代理对象创建由两种:静态代理,动态代理
应用的条件是目标对象必须实现接口
横切性关注点
Source:
public interface PersonService {
public void save(String name);
public void update(String name, Integer personid);
public String getPersonName(Integer personid);
}
public class PersonServiceBean implements PersonService {
private String user = null;
public PersonServiceBean() {
}
public PersonServiceBean(String user) {
this.user = user;
}
public String getPersonName(Integer personid) {
// TODO Auto-generated method stub
System.out.println("I'm getPersonName.");
return "XXX";
}
public void save(String name) {
// TODO Auto-generated method stub
System.out.println("I'm save.");
}
public void update(String name, Integer personid) {
// TODO Auto-generated method stub
System.out.println("I'm update.");
}
public String getUser() {
return user;
}
}
public class JDKProxyFactory implements InvocationHandler {
private Object targetObject;
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
// TODO Auto-generated method stub
PersonServiceBean bean = (PersonServiceBean) this.targetObject;
Object result = null;
if (bean.getUser() != null) {
result = method.invoke(targetObject, args);
}
return result;
}
public Object createProxyInstance(Object targetObject) {
this.targetObject = targetObject;
return Proxy.newProxyInstance(this.targetObject.getClass().getClassLoader(),
this.targetObject.getClass().getInterfaces(), this);
}
}
public class AOPTest {
@Test
public void proxyTest() {
JDKProxyFactory factory = new JDKProxyFactory();
PersonService service = (PersonService) factory.createProxyInstance(new PersonServiceBean());
service.getPersonName(1);
}
}
AOP—代理对象
1. 拦截所有业务方法
2. 判断用户是否有权限,由权限就允许它执行业务方法,没有权限不允许执行业务方法。
代理对象创建由两种:静态代理,动态代理
应用的条件是目标对象必须实现接口
横切性关注点
Source:
public interface PersonService {
public void save(String name);
public void update(String name, Integer personid);
public String getPersonName(Integer personid);
}
public class PersonServiceBean implements PersonService {
private String user = null;
public PersonServiceBean() {
}
public PersonServiceBean(String user) {
this.user = user;
}
public String getPersonName(Integer personid) {
// TODO Auto-generated method stub
System.out.println("I'm getPersonName.");
return "XXX";
}
public void save(String name) {
// TODO Auto-generated method stub
System.out.println("I'm save.");
}
public void update(String name, Integer personid) {
// TODO Auto-generated method stub
System.out.println("I'm update.");
}
public String getUser() {
return user;
}
}
public class JDKProxyFactory implements InvocationHandler {
private Object targetObject;
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
// TODO Auto-generated method stub
PersonServiceBean bean = (PersonServiceBean) this.targetObject;
Object result = null;
if (bean.getUser() != null) {
result = method.invoke(targetObject, args);
}
return result;
}
public Object createProxyInstance(Object targetObject) {
this.targetObject = targetObject;
return Proxy.newProxyInstance(this.targetObject.getClass().getClassLoader(),
this.targetObject.getClass().getInterfaces(), this);
}
}
public class AOPTest {
@Test
public void proxyTest() {
JDKProxyFactory factory = new JDKProxyFactory();
PersonService service = (PersonService) factory.createProxyInstance(new PersonServiceBean());
service.getPersonName(1);
}
}
相关文章推荐
- 15_传智播客Spring2.5视频教程_使用JDK中的Proxy技术实现AOP功能
- 15_传智播客Spring2.5视频教程_使用JDK中的Proxy技术实现AOP功能 3
- ITCAST视频-Spring学习笔记(使用CGLIB实现AOP功能与AOP概念解释)
- 15_传智播客Spring2.5视频教程_使用JDK中的Proxy技术实现AOP功能 2
- ITCAST视频-Spring学习笔记(使用Spring的注解方式实现AOP的细节)
- ITCAST视频-Spring学习笔记(使用Spring的注解方式实现AOP入门)
- ITCAST视频-Spring学习笔记(使用Spring配置文件实现AOP)
- 使用JDK中的proxy技术实现AOP功能
- (9) 使用JDK中的Proxy技术实现AOP功能 以及 CGLIB生成代理
- Spring学习笔记 —— AOP(面向切面编程) 之使用ProxyFactoryBean实现AOP
- Spring学习笔记(14)----使用CGLIB实现AOP功能
- 使用JDK中的Proxy技术实现AOP功能[动态代理]
- 使用JDK中的Proxy技术实现AOP功能
- (8) 使用JDK中的Proxy技术实现AOP功能 以及 CGLIB生成代理
- (转)使用JDK中的Proxy技术实现AOP功能
- 使用JDK中的Proxy技术实现AOP功能
- 使用JDK中的Proxy技术实现AOP功能
- 使用JDK中的Proxy技术实现AOP功能
- JDK中的Proxy技术实现AOP功能
- Spring视频学习(六)JDK和cglib实现AOP