摘要: 学习背景 在解决一个线上问题时发现是因为JAVA线程池本身的设计导致,要彻底解决的话需要重写这部分实现。 然后就找了一些资料研究怎么重写JAVA底层的类,就发现了javaagent。 主要学习资料如下: "JVM TI" "JavaAgent 原理与实践" "JVM 源码分析之 javaagent 阅读全文
posted @ 2020-05-12 09:47 ZaneZhou 阅读(711) 评论(0) 推荐(0)
摘要: 语言类程序 在之前的学习中,我们已经知道了如何使用ANTLR来定义一种语言,现在进行一些深入的研究。通常单独的语法并没实际作用,应该有一个语法分析器才能帮助我们实现一些具体功能,才能开发一个语言类的程序。 语法分析器除了能够解析语法外,应该还能在遇到特定的语句,词组,或者语法符号时触发一些特定的行为 阅读全文
posted @ 2020-04-27 19:59 ZaneZhou 阅读(428) 评论(0) 推荐(0)
摘要: 背景 需求场景是需要实现一个支持多租户多数据源的系统,每个租户的数据库完全隔离。并且系统需求通过区分不同租户的请求进行动态数据源的切换。 系统底层框架是使用的SpringCloud + MyBatisPlus(一个mybatis的增强框架),数据库连接池是Druid。 熟悉SpringBoot的同学 阅读全文
posted @ 2020-04-27 13:57 ZaneZhou 阅读(4573) 评论(1) 推荐(0)
摘要: ANTLR基本语法 前面已经简单介绍了ANTLR以及怎么安装和测试。 同学们应该大概清楚ANTLR的使用场景,但是对于关键步骤,怎么编写一个语法文件并没有详细介绍,这篇笔记主要详细讲解一下ANTLR的语法。 在过去的几十年内人类发明了很多种编程语言,现在还在持续增加。而ANTLR的语法就是要把任意的 阅读全文
posted @ 2020-04-08 18:19 ZaneZhou 阅读(338) 评论(0) 推荐(0)
摘要: 安装ANTLR 作者的电脑是MAC的操作系统macOS Catalina 10.15.2。 安装步骤后linux操作的系统的一样, Windows系统大致步骤一样,但是环境变量等配置有差别,作者很久没使用过win系统,只能基于MAC的系统介绍了。 环境准备 ANLTR是用JAVA编写的,需要先安装好 阅读全文
posted @ 2020-04-03 09:58 ZaneZhou 阅读(732) 评论(0) 推荐(0)
摘要: 学习背景 最近做项目需要开发一个类似Graphql的简单版的自定义查询功能。 功能主要是通过前端自定义的复查询条件来控制后端的查询字段以及最终返回的JSON格式。 最初准备直接使用Graphql实现但是研究后发现Graphql还是比较重,需要重新定义对象关系来配置Graphql的描述文件。最终决定参 阅读全文
posted @ 2020-04-03 09:53 ZaneZhou 阅读(292) 评论(0) 推荐(0)