- 博客(301)
- 收藏
- 关注
原创 idea插件开发系列1-环境搭建
还记着10多年前有幸接触了eclipse插件开发,10多年后的今天有开发了idea的插件,真是一个轮回!为什么要学习idea插件开发呢?目前公司使用自己的MVC框架,没有相应的idea插件支持(如类似mybatis插件可以完成xml和调用dao的方法来回跳转的功能),所以工作之余,想开发一个插件,适配公司的MVC框架,提高点开发效率。
2024-09-23 23:20:46
931
原创 WPS JSA 宏脚本入门和样例
WPS window版本才支持JSA宏的功能。可以自动化的操作文档中的一些内容。参考文档:有问题,基本查看上面的两个文档,再加上百度搜索,就差不多了。
2024-06-07 16:43:16
6269
原创 dubbo源码实践-总结
自己大概花了一个月的时间,断断续续的看了一遍dubbo源码,之前的文章从实践出发搭建了dubbo各层的例子!Dubbo源码的学习也暂时告一段落。这篇就谈谈自己对dubbo源码学习个人感受!
2023-01-11 10:40:35
664
原创 dubbo源码实践-config层例子
本文主要参考官方例子:https://cn.dubbo.apache.org/zh/docsv2.7/user/configuration/api/今天例子我们总要使用Config层的API来搭建dubbo调用的例子。通过图可以看到,主要是两个类:ReferenceConfig类(客户端使用该类)、ServiceConfig类(服务端使用该类)。
2023-01-10 00:53:59
368
原创 dubbo源码实践-protocol层例子
本文提供了基于protocol层的一个客户端、服务端代码例子。从dubbo 2.7的架构图上可以看到protocol层上在Remoting层之上的,个人理解Protocol层不在讨论客户端和服务端的概念了,开始讨论服务提供者和服务消费者的概念了。参考上一篇dubbo源码实践-protocol层-invoker理解,本文理解起来应该不难。细心的读者已经发现代码中还使用Proxy层的类,Protocal层+Proxy层已经实现了服务的发布与消费。
2023-01-09 00:27:49
454
原创 dubbo源码实践-protocol层-invoker理解
Invoker官方解释:Invoker 是实体域,它是 Dubbo 的核心模型,其它模型都向它靠扰,或转换成它,它代表一个可执行体,可向它发起 invoke 调用,它有可能是一个本地的实现,也可能是一个远程的实现,也可能一个集群实现。
2023-01-07 16:44:20
733
原创 dubbo源码实践-Exchange 信息交换层例子
官方定义:exchange 信息交换层:封装请求响应模式,同步转异步,以RequestResponse为中心,扩展接口为Exchanger其中Exchanger是SPI扩展点,是该层的入口。其中客户端通过ExchangeClient.request发送请求,服务端通过ExchangeHandler的reply方法处理请求并返回结果。为了理解上面官方的定义,下面将使用该层的类创建一个客户端和服务器端的应用。2 实践例子2.1 项目结构由于是TCP框架,所以有服务端和客户端,两端的代码。
2023-01-06 01:44:32
539
原创 dubbo源码实践-transport 网络传输层的例子
Transporter层位于第2层,已经实现了完整的TCP通信,定义了一套Dubbo自己的API接口,支持Netty、Mina等框架。官方定义:transport 网络传输层:抽象 mina 和 netty 为统一接口,以Message为中心,扩展接口为Channel,,Client,Server,Codec个人理解:这里说的Message其实就是指java的任意对象(Object类)。如:ChannelHandler类中的方法,负责接收一个对象。如:Client类的。
2023-01-03 21:18:54
558
原创 dubbo源码实践-serialize层的例子
本文描述了dubbo serialize层API的简单使用。 原理请自行网上搜索(网上描述的都比较详细了,就不在copy一份了。)。
2023-01-02 20:42:00
689
原创 dubbo源码实践-SPI扩展
想要看Dubbo的源码,SPI机制必须搞明白。dubbo提供通用的处理逻辑,具体的处理细节都是使用SPI机制提供扩展和实现的。比如dubbo的服务发现,通过SPI共有6种实现(file、zookeeper、consul、etcd3、eureka、nacos)。
2022-12-31 23:54:36
1189
原创 Failed to introspect Class from LaunchedURLClassLoader
Failed to introspect Class from LaunchedURLClassLoader
2022-09-16 12:23:12
602
原创 【算法】如何判断链表是否有环
思路:快慢指针。 按顺序阅读下面两篇文章即可。(35条消息) 【算法】如何判断链表有环_Mlib-优快云博客_判断链表中是否有环(35条消息) 判断两个单链表是否相交及找到第一个交点_rotation博客-优快云博客_判断两个单链表是否相交...
2021-10-27 19:58:03
168
原创 dubbo admin 部署时遇到的nginx代理问题
1 概述1) 前端页面使用vue开发,默认部署到服务端的内嵌tomcat中。vue依赖nodejs。2)服务端采用springboot开发,内嵌tomcat。2 部署 参考官方文档3 遇到的问题由于部署到域中,域名有限,所有做了nginx代理多个中间件的页面。如:http://abc.com/apollo/xxx nginx转发给apollo后台;http://abc.com/dubbo/index.html nginx转发给...
2021-07-27 10:11:36
612
转载 如何排查linux机器磁盘IO偏高
1 TOP命令查看IO等待。 wa:cpu等待磁盘写入完成时间2 iostat -x -d 1 定哪个设备IO负载高3 iotop -odP 查看哪一个进程的io高4 ps -ef |grep pid 查看哪一个应用引起的,看看是否需要重启服务 减少io5 top -H -p pid 查看这个进程中线程消耗资源情况参考:cpu内存磁盘io过高问题处理...
2021-02-26 16:06:08
1081
原创 笔记系列-SynchronousQueue笔记
这两天分析了一下SynchronousQueue类的实现,代码比较复杂,看来两三天才大概理解里面的逻辑。其中有个名词“dual queue”感觉网上的文档翻译的有问题,不好理解。我解释一下:dual queue:二元队列,队列中只存储相同类型的元素,要么都是“data”类型, 要么都是“requests”的。代码中有解释:A dual queue is one that at any given time either holds “data” – items provided by put ope
2020-10-29 20:12:29
180
原创 统计Git库中默认修改过的文件
需求:领导想排查一下,开发人员有没有修改了不该修改的项目文件。查了一下,git有个git log命令,可以看提交历史。处理思路:使用git log查出某人的全部提交记录,统计出修改过的文件,然后文件去重,再人工过滤文件即可。git loggit log --author=“xiaomei” -3 --statgit log --author=“xiaomei” -3 --name-statusgit log --author=“xiaomei” -3 --pretty=oneline --name
2020-10-20 17:32:04
297
原创 Mycat参数记录
<property name="processors">256</property> 系统线程数。这个属性主要用于指定系统可用的线程数<property name="processorExecutor">256</property> 用于指定 Processor 上共享的 businessExecutor 固定线程池大小 ,这个属性主要用于指定NIOProcessor上共享的businessExecutor固定线程池大小<property n
2020-10-09 19:59:20
264
原创 开源项目收录
1 antv/G6https://gitee.com/antv/g6G6 是一个图可视化框架。它提供了一套图可视化的基础设置,能帮助开发者搭建属于自己的图 图分析 应用或是 图编辑器 应用
2020-07-05 15:16:32
206
原创 java垃圾回收-G1-备忘
java垃圾回收-G11 G1概念1.1 G1回收,分RegionG1采用了分区(Region)的思路,将整个堆空间分成若干个大小相等的内存区域,每次分配对象空间将逐段地使用内存。因此,在堆的使用上,G1并不要求对象的存储一定是物理上连续的,只要逻辑上连续即可;每个分区也不会确定地为某个代服务,可以按需在年轻代和老年代之间切换。启动时可以通过参数 -XX:G1HeapRegionSize=...
2020-04-14 18:32:07
1085
原创 Mysql 全文索引ngram测试
测试了一下全文索引(ngram), 全文索引一个问题, 当每条数据都包含一个词时,如:“活动”。 这时,搜索“活动”, 查询速度偏慢。20万数据:0.89秒钟100万数据:4.5秒钟没有不走索引的like快。如果不考虑分词,推荐使用like。参考文档:InnoDB全文索引基础https://blog.51cto.com/lee90/1959856informat...
2020-04-09 20:53:44
664
转载 Java获取jar中的文件
转载自:https://blog.youkuaiyun.com/qq_27870421/article/details/100751503一、获取自身中的文件(以jar运行的程序)public class Application { public static void main(String[] args) throws IOException { // fileName是在...
2020-02-05 00:52:16
624
原创 Idea插件记录
1 GenerateSerialVersionUID插件, 产生serialVersionUID时使用。 使用快捷键: alf+insert
2019-03-11 21:40:59
258
原创 微信机器人备忘
这里写自定义目录标题微信机器人备忘参考资料微信机器人备忘目前使用itchat来实现,原理就是通过web版本的微信通信的URL来完成有微信服务器的交互。itchat的git地址 https://github.com/littlecodersh/ItChat参考资料http://www.php.cn/python-tutorials-394725.htmlhttps://blog.csdn...
2019-02-23 20:56:32
321
转载 Spring的profile
Spring 参考:https://www.cnblogs.com/jason0529/p/6567373.htmlhttps://www.cnblogs.com/pangguoming/p/5888871.htmlSpringboot 可以参考https://blog.youkuaiyun.com/lsm135/article/details/79373335
2019-01-24 09:17:53
264
原创 使用Fiddler抓包微信7.0--HTTPS协议(安卓手机)
1起因和分析1.1起因目前这在做微信小程序的项目,通过Fiddle抓Https的包一直都可以,但是升级到微信7.0后,就不能抓包了。1.2分析原因(猜测)微信7.0在代码里对https证书进行了限制,在https握手时,不是合法的证书就断开连接。1.3尝试了一些方案(都未成功):1 微信提供配置开关,可以关闭在代码中校验证书的功能。没有找到相应的配置。2 Fiddler中添加合法的证...
2019-01-05 23:58:38
27875
6
转载 HTTP协议安全头部X-Content-Type-Options引入的问题
转载:http://www.jackieathome.net/archives/369.html?utm_source=tuicool&utm_medium=referral前段时间测试MM反馈了一个问题,在富文本编辑器里上传的图片无法正常呈现。因为Jackie在本机的环境上没有观察类似的现象,而恰好那天测试环境的某个重要配项被改错了,于是Jackie想当然的归类为配置项错误引入的问题。...
2018-12-05 20:32:17
23870
原创 java运行时神器
java运行时神器java运行时神器BTrace, grays-anatomy, arthas新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowch...
2018-11-20 00:21:18
277
原创 Fiddler使用
Fiddler使用Fiddler使用1 需要安装Fiddler插件:CertMaker 。 有了它,手机上的https才能正确识别。2 然后可以在网上搜索文档3 可以通过导出证书,手动安装证书到windows上。...
2018-09-30 00:36:46
285
原创 vbox网络配置
VirtualBox是oracle出品的虚拟机软件,但是感觉网络配置比较麻烦。在此记录一下。1 NAT Networks 网络类型配置点击“File” –&gt; “Preferences” 打开“Preferences”,选择Network选项。可以配置NAT Networks网络了。这里配置的是全局的,每个虚拟机可以在全局的多个网络中选择一个。2 Host Networ...
2018-07-04 15:45:02
3260
原创 vs code 中使用Markdown生成PDF
vs code 中使用Markdown生成PDF1 安装插件在VS中的插件管理中安装“Markdown Preview Enhanced” 插件。2 使用npm安装puppeteernpm install -g puppeteer3 自定义Markdown的CSS“Markdown Preview Enhanced” 插件可以支持自定义css。请在vs的命令...
2018-06-07 17:14:06
9264
转载 菜鸟学Linux命令:ssh命令 远程登录
1、查看SSH客户端版本有的时候需要确认一下SSH客户端及其相应的版本号。使用ssh -V命令可以得到版本号。需要注意的是,Linux一般自带的是OpenSSH: 下面的例子即表明该系统正在使用OpenSSH:$ ssh -V OpenSSH_3.9p1, OpenSSL 0.9.7a Feb 19 2003下面的例子表明该系统正在使用SSH2:$ ssh -V ssh: SSH Secure S...
2018-05-31 00:26:15
5579
原创 spring boot shiro 采坑指南
遇到的一个问题:ShiroFilterFactoryBean 配置完成后,该filter不起作用。原因:在项目中还定义了一个别的DotDOFilter(该Filter的作用是把Url中xxx.do结尾Url修改成xxx), 在这个DotDOFilter中使用了request.getRequestDispatcher(uri).forward(request, response);...
2018-05-03 19:09:34
2645
原创 python 乱码问题
请看这篇文章基本就能搞定了: PYTHON-进阶-编码处理小结python中程序内部使用unicode编码, tpye(s) 可以查看字符串s的类型, 可能有两种情况: 1 str , 2 unicode。 当定义字符串 s = u"中国" 时, s 是 unicode 类型。 unicode类型可以使用s.encode('uft-8') 转变成uft-8类型的str。当定义字符串 s = "...
2018-03-30 18:46:31
531
原创 java程序调用外部进程时不退出
1 遇到的问题: java启动一个外部程序,外部程序一直挂起不退出。2 解决方法:启动两个线程, 分别读取外部程序的标准输出和标准错误输出。3 参考代码:String db3File = FileUtil.connectFile(workDirStr, fileName);String cmd = "java -jar " + jarFile.getAbsolutePath() + " " ...
2018-03-08 17:55:36
2337
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人