一起写框架-说在前面的话(一)

本人的想法:

互联网中,一堆框架。浮躁的社会,到处都是秒天秒地的广告。

各种Struts,Spring,Hibernate,Mybatis的学习教程充斥互联网。让人有一种错觉,只要学会框架,就可以解决一切问题!

而我,从入行就开始的思考一个问题:作为一个Java程序员,难道仅仅就会几个框架就满足了吗?

有没有想过试试,自己也写一个!

然而:事与人违!充满冲劲的时候,小白一个,什么也不懂。当开始入行后,一直忙碌活地为生存而活着,早已将这个曾经强烈的欲望压到了脑后。

最近,终于开始有了一点点时间,而在网上找找,确实也没有什么可以让新手入门自己写框架的教程。最多的就是分析一个Spring源码,Struts源码这类的文章。

总让我有一种拿扩大镜近距离看大象一样的感觉,永远看不清全貌。仅仅可以满足作者总结心得,对于看的人毫无营养。

曾经经历过,好想试试自己写框架。却没有任何入门的教程,饱受煎熬。

如果你现在,同样遇到我曾经的痛苦,希望这个教程可以帮到你入门。

当然,能力有限。如有疏漏,不吝指教!献丑了

初步计划:

第一步,先 编写一个到达基本使用IoC的内核,用于整合其他框架。

第二步,再编写一个到达基本使用功能MVC的子框架

第三步,最后编写一个到达基本使用功能ORM的子框架

本教程适合的人群:

1.本教程不适合,没有任何JavaEE基础的人。至少你学习起来很吃力。

2.至少了解注解和反射的使用,本教程将所有的功能都基于注解实现,直接忽略XML配置文件。

3.学习IoC容器的内核实现时,先了解Spring框架的基础。

4.学习MVC子框架的实现时,先了解SpringMVC框架的基础。

5.学习ORM子框架的实现时,先了解Mybatis框架的基础。

时间: 2024-11-09 03:43:39

一起写框架-说在前面的话(一)的相关文章

《自己动手写框架8》:高屋建瓴,理念先行

<史记·高祖本纪>:"地势便利,其以下兵于诸侯,譬犹居高屋之上建瓴水也."这里用到了高屋建瓴这个词.意思是把瓶子里的水从高层顶上倾倒.比喻居高临下,不可阻遏的形势.现指对事物把握全面,了解透彻.此典故于汉高祖刘邦欲杀功臣韩信,大夫田肯进言到"陛下牢牢地控制着三秦(关中),陛下利用这雄险的地势,来控制.驾御诸侯,就如从高高的屋脊上把水从瓶子里倒下去."以此来表彰韩信的功劳,于是,刘邦赦免了韩信,只是将他降为淮阴侯. 同样,设计企业框架,也要对事物把握全面,

想自己写框架(1)

学了PHP也有一段时间了,从大二到现在,一直停留在某个阶段,没前进.大三用了CI 毕业时用ThinkPHP.还是觉得要自己写一个,会比较彻底. 开始看文件,再做具体分析. 按照经验来看,Common是公共文件,Conf是配置文件,Lang是语言文件,Library是核心类,Mode是数据库链接类,Tpl是模板文件 ThinkPHP.php是核心文件,应该管理统一入口. 先从ThinkPHP.php开始吧. 前面一大堆忽略了 // 加载核心Think类require CORE_PATH.'Thin

《自己动手写框架4》:分布式锁的简单实现

分布式锁在分布式应用当中是要经常用到的,主要是解决分布式资源访问冲突的问题.  一开始考虑采用ReentrantLock来实现,但是实际上去实现的时候,是有问题的,ReentrantLock的lock和unlock要求必须是在同一线程进行,而分布式应用中,lock和unlock是两次不相关的请求,因此肯定不是同一线程,因此导致无法使用ReentrantLock. 接下来就考虑采用自己做个状态来进行锁状态的记录,结果发现总是死锁,仔细一看代码,能不锁死么. public synchronized

《自己动手写框架9》:理想的开源框架与设计原则

理想的开源框架?她应该是小的.简单的,满足Simple Is Beautiful?她应该是成长性好的,随着不断的扩展,她可以越来越丰满?她应该是有良好工具支持的,为什么要花时间做工具可以完成的事情呢??她应该是自组装的,也就是尽可能的脱离配置,而是用一种依赖即可用,取消依赖即消失的全自动处理模式?她应该是模块化的,所有的内容都可以被打入jar包而作为一个整体进行发布,并且能支持热部署的,可以开着车儿换轮胎的?她应该是支持水平部署的,想加服务器就加,想减服务器就减?她应该是有良好知识积累体系的,使

《自己动手写框架7》:关于框架体系与战术的思考

什么是框架? 这个问题实际上许多"做框架"的人也不明白. 框架和库的本质不同在于: 框架考虑的是机制的复用,而库主要考虑的是代码的复用 框架考虑的是在机制不变的情况下进行扩展,而库则基本不考虑扩展方面的问题 框架本身是不完整的,在大多数的情况下它自己是干不了啥事情的,而库自身是完整的,可以解决某个领域的问题. 框架是活的,通过不断的扩展与衍生,它就更加强大,而库而是死的,发布时是怎样,就是怎样. 当然,关于这两货之间的比较,还有许多个角度,但我个人觉得本质是我上面举的这些. 设计的时候

自己动手写框架(一)

PHP框架接触有一段时间,主要是Kohana和Thinkphp.这两个框架各有各的特色,总体来说Kohana还是相对来说比较简单,但是国内资料较少. 简单的,我把我的这个框架命名为Demo. 框架搭建第一步,总体目录规划: 目录  APP(应用)->TEM (主题) -> SYS (系统) ||-------Application 应用 |---classes Controller Models |---views || ---Template 主题 |---classes Controlle

我要写框架之MVC(2)------初始化

继续上一篇的内容 本篇讲述MVC框架的初始化工作 我们可以在我们的核心控制器ActionCore里面的init方法进行初始化 之前说过我们用的是注解实现的而不是用xml,所以我们先新建一个注解 @Retention指定的是注解的声明周期,RUNTIME 意思是在运行时 @Target 表示注解定义在哪,而METHOD则代表方法 其中两个属性代表使用注解的时候的参数都是可选的 但有默认值"",使用如下 相信用过spring mvc 的人看到这里都会比较熟悉,就是当有add这个请求来到的时

《自己动手写框架5》:生态圈的建立

曾经有人提出过一个看似天方夜谭的设想,在我们生活的地球上再造一个"迷你地球",探求人类在这个现代"南泥湾"之中自给自足,以及未来在月球或火星上建立生存空间的可能性.美国得克萨斯州的石油大王爱德华·巴斯为此憧憬不已. 既然是自己动手写框架,我这里想借鉴一下生物圈(Biosphere)这个概念来描述一下.生物圈是指地球上所有生态系统的统合整体,是地球的一个外层圈,其范围大约为海平面上下垂直约10公里.它包括地球上有生命存在和由生命过程变化和转变的空气.陆地.岩石圈和水.

《自己动手写框架3》:业务流程引擎

一般的时候,我们都采用编程式开发,编程式开发的好处非常明显:直接.高效.自由,当然其缺点也是有的,与其优点刚好相对,因为直接,所以有些变化都要进行代码上的修改:因为高效,所以一旦出问题,导致的结果也比较严重,因为自由,所以带来的修改风险也比较大.  这也就是许多大的公司都在进行流程化开发的重要原因之一,比如:上海普元,Livebos, Justep,还有许许多多知名不知名的公司都有类似的流程化开发引擎存在,通过流程化开发,增强代码的复用性,降低软件开发成本及测试成本,提升软件的可维护性及降低维护

《自己动手写框架1》:缘起

前言 自己动手写框架?第一次接触这本书的读者可能会有一些惊讶.是的,这就是写本书的缘由. 1.1  缘由 从毕业以来,我一直从事软件开发及软件管理,做过大量的项目与产品,但是还是喜欢平台软件及软件管理方面的工作.多年的业务开发及平台构建的过程中,踩了许许多多的坑,也积累了许许多多的经验. 和很多的朋友一样,在没有开发框架之前,可能我们只有一些落在纸面上的编码规范,或者说是开发约定.但不管怎么说,这些规范和约定对于我们软件开发过程还是有相当的指导与规范作用的.再后来,随着时间的推移,我们的软件代码