代理模式初探及延展
先从经典的代理模式介绍出发,掌握它的使用方法,并且通过开源框架的实际应用来介绍它具体的使用场景,并且通过研究源码掌握它的实现原理,最后通过asm自己实现一个动态代理!
葵续浅笑
争取每天都有进步!
展开
-
代理模式及FactoryBean的实际运用--Mybatis Mapper文件的华丽转身
Mybatis的Mapper我们很熟悉,我们只需要提供sql和一个接口,其余与数据库的交互全部交给了Mybatis解决,但是,mapper文件我们只提供一个接口,这个接口是怎么和spring结合完成我们预期的要求?FactoryBean一般情况下,Spring通过反射机制利用的class属性指定实现类实例化Bean,在某些情况下,实例化Bean过程比较复杂,如果按照传统的方式,则需要在中提供大...原创 2019-03-06 11:01:48 · 3376 阅读 · 0 评论 -
Simplify-Core -- java对象转换成Json(Json generator)
先感叹一波今天正式毕业,拿到了毕业证和学位证,然后博客也有三个多月没写了,最近自己写了一个工具类的项目,Simplify,旨在简化重复的JAVA代码,基于JDK8,无其它jar包依赖,提供序列化,json,日期等常见操作。json generator部分写的比较完善了, parse部分能跑简单的测试用例。 网上json的工具类数不胜数,自己写主要还是实现最基本的json功能满足大部分的需要,更重要原创 2017-06-30 19:40:42 · 1123 阅读 · 0 评论 -
Simplify-Core --Json解析(Json parser)
在上一篇文章中,我们看到了一个java对象是怎么转换成json规范的字符串,这一次是反过来,从json字符串解析json内容,并且合成java bean,先上我的Simplify项目地址项目,欢迎路过的大牛对项目提出建议。项目地址:https://github.com/lovejj1994/Simplify-Core还是再贴一下json框架的架构图,因为不管是解析还是生成,都跟这个架构有关系。 先原创 2017-07-16 23:17:40 · 653 阅读 · 0 评论 -
从代理模式再出发!ClassLoader初探
前面几篇文章或多或少涉及到了代理模式的方方面面,从静态代理到动态代理的介绍使用,到mybaties对代理模式的实际运用,我们会想到代理模式再深一层是什么?我们只会用jdkproxy,但是在java语言的视角中,代理模式又是怎么运行的? 这个系列文章将从代理模式再出发!探讨跟代理相关的classloader,jvm字节码等概念,最终的目标是实现一个自己的代理框架。这些文章不是面面俱到的大谈jvm,cl原创 2017-09-18 16:37:58 · 2393 阅读 · 5 评论 -
从代理模式再出发!Proxy.newProxyInstance的秘密
上一节简单介绍了一下ClassLoader,我们知道,在我们用Proxy.newProxyInstance实现动态代理的时候,有三个参数,第一个便是classloader,这一篇文章就是简单看一下Proxy.newProxyInstance是如何实现动态代理的,因为我们后面可以以此为参考,实现自己的动态代理工具。public static Object newProxyInstance(ClassL原创 2017-09-24 21:43:06 · 38642 阅读 · 8 评论 -
代理模式的实际运用-以mybatis拦截器实现原理为例
之前在写mybatis拦截器的时候,因为不懂原理,琢磨了很久,不知道怎么写,在网上找了很多资料,才知道mybatis的拦截器主要还是通过代理实现的,而且我在之前的博文中刚好学习了代理模式。更精细的是,在mybatis对代理的应用上,不管是封装易用性,减少代码耦合度上,都可以让我之前写的代理模式demo进一步改进,也让我加深了对代理模式的理解。之前代理模式博文地址:http://blog.csdn.n原创 2017-08-16 09:52:49 · 1235 阅读 · 0 评论 -
java设计模式之代理模式(动态代理和静态代理)
代理的含义在于 代替原对象做更多的事情,而不破坏原代码的代码结构。代理也分静态代理 和 动态代理,我们先以简单的静态代理为例子。静态代理:定义一个接口package designmode.代理模式;public interface Sourceable { public void method();}被代理的对象,它实现了 Sourceable 接口/** * 被代理对象 * @au原创 2017-07-10 18:23:41 · 1029 阅读 · 2 评论