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

      

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

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

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

1、具备开发的核心功能
2、保持微内核以及高扩展
3、支持插件式开发
4、提供便捷的开发模式
5、让开发有更多的时间做更有意义的事情

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

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

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

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

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

        三、可以让我们更加安心访问数据库的事务管理

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

        四、更加简单易用的Dao

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

       五、扩展性以及框架配置

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

        六、其他边边角角

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


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

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





转载于:https://my.oschina.net/bieber/blog/279815

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值