专业的JAVA编程教程与资源

网站首页 > java教程 正文

java:jdk动态代理(jdk动态代理实现aop)

temp10 2024-10-04 12:33:31 java教程 8 ℃ 0 评论

一、实现jdk动态代理需要的条件:

1.目标类(明星||房东||UserDaoImpl)需要有接口

java:jdk动态代理(jdk动态代理实现aop)

2.代理类不需要和目标类实现同一个接口

3.代理类需要维护一个目标对象的引用,并作为参数,构建一个有参构造函数

4.通过jdk提供Proxy对象来动态创建代理对象..

通过调用Proxy对象的newProxyInstance()方法可以动态创建一个代理对象,需要三个参数:

1.目标对象的类加载器(固定写法)

2.目标对象实现的接口

3.InvocationHandler的对象

两种方式:

1.可以写一个匿名类

new InvocationHandler() >> 实现invoke方法

当目标对象的方法执行之前,会触发这个invoke方法

invoke方法的参数:

1.将要生成的代理对象(注意,不要去调用这个对象)

2.目标对象正在执行的方法

3.目标对象正在执行的方法的参数

5.不用匿名类的方式:

代理类工厂需要实现InvocationHandler接口

然后去实现invoke方法

在Proxy.newProxyInstance()方法的第三个参数传入this;

二、代码演示

1创建一个接口:UserDao.java

2、创建UserDaoImpl实现UserDao接口:UserDaoImpl.java

3、创建代理类:UserDaoproxyFactory.java

4、测试类:Client.java

5、测试结果:

感谢你长得那么美还来看小编的文章,喜欢就点关注和转载哦!

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表