关于 轮子工厂 的文章

大学写的一个 Java Web 库

前言大学刚毕业,专业是电子信息工程。大一开始学Java,准确的说是高三最后的几周开始的. 果然兴趣是最好的老师, 在大一下学期自己从前端到后台写了我的个人网站:TODAY BLOG 。 从注册域名到备案再到网站成功上线,我遇到过的困难不计其数。因为感兴趣所以我坚持了下来。第一个版本使用的纯Servlet写的。后来了解到Java有很多开源框架可以简化我的开发。于是又投入到新一轮的学习之中… 学了Struts2后自己学着写了一个小框架:TODAY WEB,几百行搞定从解析xml定义的action到处理对应的请求 2019-03-30 13:01:13 | 阅读数 7718

TODAY WEB 快速入门

第一步: 新建项目项目结构第二步:引入依赖<dependency> <groupId>cn.taketoday</groupId> <artifactId>today-web</artifactId> <version>2.3.6.RELEASE</version></dependency><dependency> <groupId>cn.taketoday< 2019-05-26 11:46:36 | 阅读数 41

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

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

Today Web Mvc 路由设计

系列博文:《Today Web Mvc 设计思想》之路由设计。v2.3.7版本之前实现方式通过核心方法DispatcherServlet#lookupHandlerMapping()在运行时来寻找对应handler(Action)protected HandlerMapping lookupHandlerMapping(final HttpServletRequest req) { // The key of handler String key = req.getMethod() + req. 2019-08-14 00:03:58 | 阅读数 110

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 Web Mvc 参数处理器设计

系列博文:《Today Web Mvc设计思想》 之参数处理器设计。重要接口 ParameterResolver@FunctionalInterfacepublic interface ParameterResolver { default boolean supports(final MethodParameter parameter) { return true; } Object resolveParameter(final RequestContext request 2019-09-03 23:54:47 | 阅读数 72

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