关于 轮子 的文章

大学写的一个依赖注入框架

前言接上一贴:《大学写的一个 Java Web 框架》。web 框架2.0刚出来时没有 ioc 容器感觉不是很方便,所以想自己实现一个。之前有看过Spring源码但是发现我对Spring源码无从下手?完全懵逼。之前学过怎么用Spring但是对他的底层完全不了解的我带着试一试的心态开始到处查资料,就这样我又开始造起了轮子。如何扫描类文件、学习Java注解、Java字节码、动态代理、重新认识接口、一些设计模式、学习使用Git、渐渐明白了单元测试的重要性 等。随着学习的深入框架经历了数次重构,自己也对依赖注入有 2019-08-08 00:29:48 | 阅读数 127

Today Web Mvc 设计思想

简介该框架起初是仅仅只有280行。随着学习的深入框架经历了数次重大重构。学习过Spring在使用上和她也很像,但是他们有着本质的区别。边框架根本目的在于学习。Talk is cheap. Show me the code.代码如下package com.yhj.core.web.servlet;import java.io.File;import java.io.IOException;import java.io.Serializable;import java.lang.reflect.Method;i 2019-08-14 09:10:58 | 阅读数 129

TODAY Context 解决循环依赖

什么是循环依赖一个Bean A依赖了Bean B 刚好 Bean B又依赖了Bean A。在初始化其中一个Bean时由于依赖了另外一个Bean则去获取另外一个Bean,但发现又依赖了刚刚那个Bean,又不得不去获取刚刚那个Bean。。。周而复始,造成了循环。再多一个BeanC也是一样,参与的Bean越多形成的环越大。如何解决?在获取依赖Bean时不去初始化就行了,仅仅是获取实例,一层一层的退出循环。必须要知道是不是已经在初始化当前的Bean了。记录下来。关键代码public class StandardBe 2020-07-22 22:05:47 | 阅读数 18

修复IDEA Agent BUG 修改Java字节码导致的原始字节码结构出错

在调试博客新版本中发现了IDEA底层修改Java字节码是的原始字节码错误,框架在解析方法参数的时候我发现原始的程序检测的参数名向后偏移了一个名字如下:IDEA报错:业务代码:原始解析:int offset = Modifier.isStatic(method.getModifiers()) ? 0 : 1;for (i = 0; i < parameterCount; i++) {paramNames[i] = localVariables.get(i + offset).name;}以上解析没有检测 2020-08-18 22:22:18 | 阅读数 5