【step by step构建轻量级web框架】-何为轻量级web框架

      

本系列博文,将会一步一步介绍如何构建一个轻量级的web框架jbeer git地址:http://git.oschina.net/bieber/jbeer

      在SSH/SSI充实着咱们每一个项目的开发过程当中,咱们所作的事情就是将他们一次组合在一块儿,而后让它们可以很好的工做。有时,你会以为本身陷入了它们的陷阱,它们提供了很丰富的功能,可是咱们在项目开发过程当中,可以用到的多是它们的冰山一角。咱们为了可以使用它们,可以确保它们很好的运行,可能须要依赖一大堆的第三方jar包,致使可能一个普通的CMS项目,都会有几十兆,想一想,若是咱们只是经过Servlet+jdbc+jsp,这样一个项目可能不到10兆就能够解决。因而,就致使出,一个可以维持J2EE开发的基本功能,而又保持整个项目轻巧而且让人感受很清爽。这就衍生出了轻量级web框架的诞生。 html

         轻量级框架能够说麻雀虽小,但五脏俱全。它保持了常规开发中须要的便捷功能,又保持了它的轻巧,同时也不失对整个框架的扩展性。通常轻量级框架都具有一下几个特色: git

一、具有开发的核心功能
二、保持微内核以及高扩展
三、支持插件式开发
四、提供便捷的开发模式
五、让开发有更多的时间作更有意义的事情

上面说了轻量级的框架具有的一些特色,那么做为轻量级web框架具有哪些应有的功能呢? web

1、支持restful以及参数自动绑定的MVC功能 spring

当你用了spring mvc,你确定不会再喜欢struts那一堆配置文件。因此一个轻量级的web框架,在MVC模块采用简单零配置的注解方式来绑定请求路径和对应处理方法的关系。当你知道什么是restful(其实我对它的理解也不是很深),那么你就会以为它加强了http的描述性,做为一个轻量级的框架对这一个功能的支持,应该是必要的。当我第一次作web项目开发的时候,处处是servlet,而比这个更烦的就是每次须要从request中获取请求的参数。我表示当初是什么动力,让我一直那样写下去了,表示当初的我是多么的单纯。当MVC解决了servlet遍地开花的问题,那么也应该要解决参数的自动绑定,别再让开发作这些没有任何意义的事情上面。因此以上几个功能都应该是轻量级web框架MVC模块具有的。 数据库

        2、永远不能抛弃的IOC以及AOP restful

       我第一次听到AOP和IOC是大二的时候,那个时候就据说AOP是如何如何强大,IOC如何如何便捷。这不得不让咱们感谢一我的Rod Johnson,他提出了去EJB的思想,从而创造了Spring。Spring中两大核心就是IOC和AOP,这个通常是毕业出去找工做比问的问题(固然是找J2EE的工做,Spring貌似还没涉及到C吧)。IOC提供了一个实体类的管理工厂,从而让咱们省去了不知多少个new,想要什么实体类,找IOC吧。因此IOC这个好工具不能丢失。每次想到AOP,都会让我它的用处太大了,有了它,什么日志记录,性能监控,声明式事务管理都可以很优雅的嵌入到你的具体业务中。它可以更加的丰富一个开发人员对软件开发的认识和理解,当你发如今不影响现有业务逻辑代码的时候,须要加入其余的代码执行,那么AOP就能够帮你实现。因此做为一个轻量级的web框架,是不可或缺的。 mybatis

        3、可让咱们更加安心访问数据库的事务管理 mvc

       Spring首次提出了声明式事务管理的思想(其实我也不知道是否是第一次,至少我是第一次听到spring可以这样作到),它是在它AOP的思想之上进行了封装,将访问数据库的事务进行抽象剥离,造成了声明式事务。声明式事务,让咱们开发在写访问数据库代码时,能够不用代码实现事务的开始,事务的提交以及回滚,只须要把你的事务执行策略告诉事务管理,那么它会自动帮你完成事务的开始,提交以及回滚。因此,支持声明式的事务管理固然也是轻量级web框架不可缺乏的。 框架

        4、更加简单易用的Dao jsp

       有时候我会以为hibernate比较庞大,让人感觉不到一点轻巧,好吧,或许它的目的就不是轻量级的。那么如何让Dao层可以更加的清爽呢?结合AR(activity recore)mybatis,或许从它们身上可以找到清爽两个字的含义。AR提供了便捷的AIP来操做数据库记录,Mybatis提供了很好的ORM功能。因此一个具有良好的数据库访问API和很好的ORM是轻量级框架dao模块,应该考虑的问题,也是一个比较具备考验的地方。

       5、扩展性以及框架配置

       轻量级框架因为是集成了web开发的核心功能,那么可能没法知足一些特殊场景的开发需求,为了可以让框架可以支持各类场景的开发需求,那么整个框架的扩展性在设计的时候须要考虑进去,能够考虑框架是否支持插件开发。对于须要使用轻量级框架来进行项目开发而与,对该框架的配置应该精简,采用约定优于配置的原则,从而下降了该框架的门槛,也方便了开发。

        6、其余边边角角

上面列举出了几个比较重要模块,在整个web开发过程当中还须要其余一些边角料的协做,好比配置文档的加载以及国际化,还有在开发过程当中,对代码的单元测试。轻量级框架能够考虑将单元测试嵌入到整个框架中,好比当在单元测试的时候,须要注入IOC中的某个实体,能够经过框架自动从IOC中获取对应的实体对象,相似这种需求,都会给开发人员带来很大的帮助。从而可以真正实现让开发去作更多有意义的事情,好比陪女朋友逛街…..


      经过一坨的文字,把轻量级框架的概念以及几个应该具有的功能点简单的列举了一下,那么后面将会依据上面几点,经过对JBEER框架来介绍如何来构架一个轻量级web框架。

轻量级框架的目的就是可让咱们可以在这个夏天,喝着啤酒看着世界杯,可让咱们能够躺在沙滩,喝着啤酒,看着比基尼。可让闷热的夏天,变得更加清爽,让咱们的开发生活变得更加清爽。

相关文章
相关标签/搜索