架构框架搭建(二)《Dubbo分布式领域驱动设计架构框体》
随着项目需求的变化,或者说从小公司跳槽了互联网。需求变化了、承载的用户体量增多了,整体系统的架构也随着改变了。就像你做毕业设计的时候,可能只为了完成功能即可,一个单体的MVC结构足可以让你毕业。但!现在你长大了,为了可以承载几百、几千、几亿的用户体量,你开始发现原来还有这么多套…
源码分析(1.4万字) | Mybatis接口没有实现类为什么可以执行增删改查
MyBatis 是一款非常优秀的持久层框架,相对于IBatis更是精进了不少。与此同时它还提供了很多的扩展点,比如最常用的插件;语言驱动器,执行器,对象工厂,对象包装器工厂等等都可以扩展。那么,如果想成为一个有深度的男人(程序猿),还是应该好好的学习一下这款开源框架的源码,以此…
有点干货 | 应用服务之SSM整合:Spring4 + SpringMvc + Mybatis
在实际的业务开发中按照不同的场景需要,会有不同的业务架构也就同时会有不同的技术框架来支撑。那么这个专题想把一些常用的框架整理下,方便平时使用的同时也做一些技术沉淀。那么本章节会先搭建一个比较适合个人项目或者一些小公司开发项目的单体架构模型。服务功能展示页面如下; 整体的工程模型…
有点干货 | JDK、CGLIB动态代理使用以及源码分析
在Java中动态代理是非常重要也是非常有用的一个技术点,如果没有动态代理技术几乎也就不会有各种优秀框架的出现,包括Spring。 RPC通信框架Dubbo,在通信的时候由服务端提供一个接口描述信息的Jar,调用端进行引用,之后在调用端引用后生成了对应的代理类,当执行方法调用的时…
有点干货 | Jdk1.8新特性实战篇(41个案例)
一直想把jdk1.8的新特性整理下,恰好看到老外的git(文后有链接),在这个结构上继续完善了说明和功能,做了41个单元测试案例,方便新人学习。以下内容很干,对于一个萌新小白来说,学习jdk1.8的新特性,基本看一遍就知道个7788了,在熟读两遍最后跟着写一遍,那么在实际项目中…
用Java实现JVM第十章《异常处理》
异常处理是java语言非常重要的一个语法,本章主要实现如何处理抛出的异常。
用Java实现JVM第九章《本地方法调用》
本章主要介绍用java实现一些本地方法类库,并初始化本地方法,之后通过反射命令来调用本地方法。
用Java实现JVM第八章《数组和字符串》
本章主要介绍如何实现让虚拟机处理数组和字符串,在虚拟机功能增强后,我们可以执行数组类型计算和输出字符串。本章需要新增实现数组指令;newarray、anewarray、arraylength、aload、astore、multianewarray、ldc,同时需要需要开发字符串…
用Java实现JVM第七章《方法调用和返回》
本章节主要用java实现;方法调用指令、返回指令、解析方法符号引用、参数传递等。实现新的指令后我们的虚拟机就可以执行稍微复杂的运算并输出结果。
用Java实现JVM第六章《类和对象》
本案例通过java代码实现jvm规范中指令集和解释器,完成后就可以开始执行1到100的加和计算。
用Java实现JVM第四章《运行时数据区》
本案例初步实现运行时数据区里;线程、Java虚拟机栈、帧、操作数栈、局部变量表。
开发基于SpringBoot的分布式任务中间件DcsSchedule(为开源贡献力量)
咔咔,上面这段代码很熟悉吧,他就是SpringBoot的Schedule定时任务,简单易用。在我们开发中如果需要做一些定时或指定时刻循环执行逻辑时候,基本都会使用到Schedule。 但是,如果我们的任务是比较大型的,比如;定时跑批T+1结算、商品秒杀前状态变更、刷新数据预热到…
发布Jar包到Maven仓库(为开发开源中间件做准备)
(19年12月)最近想基于Spring Boot做个开源共享项目,开发一个分布式任务DcsSchedule中间件可以把Schedule增强。那么遇到一个问题希望把Jar包发包到Maven中央仓库,这样需要使用的用户就可以直接引入。 1. 下载安装Gpg生成密钥 2. 工单系统帐…
用Java实现JVM第三章《解析class文件》附[classReader拆解]
按照如下虚拟机规范,本文主要介绍java版本jvm提取class字节码方式。在java中没有无符号类型,例如js中byte取值是0~256、java中是-128 ~ +172,所以在实际处理字节码时[虚拟机规范u1、u2、u4],需要进行转换。
用Java实现JVM第三章《解析class文件》
用Java实现JVM第二章《搜索class文件》
用Java实现JVM第一章《命令行工具》
为了更好的学习jvm阅读过《Java虚拟机规范》、《自己动手写Java虚拟机》,尤其是《自动动手写java虚拟机》可以更加清晰的看到全貌。对于程序开发者来说学习一个新东西最好事必躬亲,亲力亲为的做出一些demo,只有输出了结果心里才踏实。 本章节主要是通过编写java代码,从m…
elasticsearch-head插件安装
windows环境下安装elasticsearch6.2.2
Spring Boot 中间件开发(一)《服务治理中间件之统一白名单验证》
Spring Boot + 领域驱动设计使得微服务越来越火热,而随着微服务越来越多,服务的治理就显得尤为重要。 在我们的业务领域开发中,经常会有一些通用性功能搭建,比如;白名单、黑名单、限流、熔断等,为了更好的开发业务功能,我们需要将非业务功能的通用逻辑提取出来开发出通用组件,…