摘要: 1.先看入口在哪里,我们加载自定义的扩展都会写这行代码,那么就从分析ExtensionLoader开始了 ExtensionLoader.getExtensionLoader(XXX.class).getExtension("diyExtension"); 1.1 getExtensionLoade 阅读全文
posted @ 2020-07-16 19:11 温榆河畔的男人 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 1.新建个 #接口 package org.example; public interface LiaoYangService { public void say(); } #实现类 package org.example; public class LiaoYangServiceImpl impl 阅读全文
posted @ 2020-07-15 20:57 温榆河畔的男人 阅读(360) 评论(0) 推荐(0) 编辑
摘要: 恢复内容开始 起点 ① debug由此开始 扩展类是放在一个map缓存里的,先看缓存有没有,没有就创建,然后放到map 再看①处的代码,进入getExtension 恢复内容结束 阅读全文
posted @ 2020-07-13 07:22 温榆河畔的男人 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 1.几个简单的思维可以组合,你很容易看懂,但是思维模块直接在进行组合,你就看着费力了,原因是你没看懂他分为几个思维模块,思维模块之间是怎么组合的。就相当于高数的复合函数,函数套函数,实质上还是原来那点东西,只要你看懂基本的 ,其实你都能看懂。但是呢,你首先得有拆分思维模块的意识,理清思维模块的意识和 阅读全文
posted @ 2020-07-12 12:27 温榆河畔的男人 阅读(113) 评论(0) 推荐(0) 编辑
摘要: spi是jdk内置功能,dubbo也用了spi机制,我目前觉着,说白了就是多态思想,我定义个接口 ,这个是规范,具体实现你们来整,我不管。 spi 简单实用案例 先定一个规范发布项目: 代码: package com.liaoyang; public interface DriverInteface 阅读全文
posted @ 2020-07-12 10:14 温榆河畔的男人 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 服务端: 先在服务端写接口以及接口实现类: package com.gupao.dubbo; public interface GPDubboService { public String sayHello(String msg); } package com.gupao.dubbo; public 阅读全文
posted @ 2020-07-05 16:37 温榆河畔的男人 阅读(2425) 评论(0) 推荐(0) 编辑
摘要: 解压zookeeper-3.3.3.tar文件,总是报错: tar: Error is not recoverable: exiting now 后来试了网上一通方法 结果是文件名错了 zookeeper-3.3.3.tar.gz 略尴尬,怎么避免这种坑爹问题出现?????????????????? 阅读全文
posted @ 2020-06-26 11:08 温榆河畔的男人 阅读(1257) 评论(0) 推荐(0) 编辑
摘要: 示例背景:现有addUser方法,我们用动态代理给该方法增加校验:添加用户时姓名长度少于2报错。 1.实体类 package com.example.xiangxue.demo.proxy.jdkproxy.CGLBproxy; public class User { public String n 阅读全文
posted @ 2019-11-29 18:36 温榆河畔的男人 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 1.建立实体User package com.example.xiangxue.demo.proxy.jdkproxy; public class User { public String name; public String getName() { return name; } public v 阅读全文
posted @ 2019-11-29 16:57 温榆河畔的男人 阅读(979) 评论(0) 推荐(0) 编辑
摘要: 亲测好用 阅读全文
posted @ 2019-11-19 15:25 温榆河畔的男人 阅读(85) 评论(0) 推荐(0) 编辑