Java怎么通过动态代理实现一个简单的拦截器操作


本文小编为大家详细介绍“Java怎么通过动态代理实现一个简单的拦截器操作”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java怎么通过动态代理实现一个简单的拦截器操作”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在使用动态代理实现拦截器之前我们先简单了解一下什么Java的代理。代理,顾名思义,就是不直接操作被代理(下面都用目标对象称呼,听起来舒服一些)对象,而是通过一个代理对象去间接的使用目标对象中的方法。代理分为两种模式,一种是静态代理,一种是动态代理。接下来先写一个静态代理的例子。无论是静态代理还是动态代理,目标对象(target)都要实现一个接口(interface),注意,如果使用cglib提供的代理,则不必实现接口,而是通过子类去实现,暂不讨论该种方式。测试一下:输出结果为:——开始事务——
——–已经保存数据—————-提交事务——这种方式有一个问题,就是代理对象必须也要实现被代理对象所实现的同一个接口,这就出现了严重的耦合。所以,下面使用一种改进的方式,即动态代理(jdk代理)。动态代理方式也需要目标对象(target)实现一个接口(1)定义一个接口(IUserDao)(2)定义一个目标对象类(UserDaoImpl)(3)创建动态代理类测试一下:输出结果:class com.jd.pattern.proxy.dynamicProxy.UserDao
—-target class—class com.jd.pattern.proxy.dynami免费云主机域名cProxy.UserDao
—-target interfaces—[Ljava.lang.Class;@1fb3ebeb
—-proxy—-:class com.sun.proxy.$Proxy0
—-开始事务2—–
—–保存完成——
—-提交事务2—-
—-开始事务2—–
—-删除完成——–提交事务2—-既然是采用动态代理的方式,那么肯定会有 接口、目标类、代理类,再加一个拦截器测试一下:输出结果:在InterceptorClass中调用方法:before()
在业务组件BusinessClass中调用doSomething方法
在InterceptorClass中调用方法:after()
读到这里,这篇“Java怎么通过动态代理实现一个简单的拦截器操作”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注云编程开发博客行业资讯频道。

相关推荐: 怎么自动接受 SSH密钥指纹

这篇文章给大家分享的是有关怎么自动接受 SSH密钥指纹的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。首次连接到Linux系统时,SSH会提示你接受计算机的指纹以成功建立连接,因为“ known_hosts”文件中没有指纹。指纹是系统…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(5)
打赏 微信扫一扫 微信扫一扫
上一篇 02/07 19:56
下一篇 02/07 19:57