Blade简介

blade 意为利刃,刀剑;在中国冷兵器中刀剑的杀伤力可谓锐不可当,对它的名字没有很刻意的去琢磨,碰巧看到这个单词觉得比较喜欢,当然我希望它日后能够成为一把锐利的杀手锏。我个人的追求简洁和优雅的,所以在设计上不追求过度抽象。

blade 借鉴了很多优秀mvc框架的设计,它是为java开发人员提供的便捷易用快速上手的一款框架,你可以用它快速开发API、Web 及后端服务等各种应用,漂亮大方的博客系统 tale 正是基于 Blade 驱动。

它提供了非常多的功能,内置ioc、rest路由,视图渲染,json返回,统一配置,事件机制,CSRF验证等;也有非orm的jdbc扩展框架作为数据库支持。框架对外提供很多扩展接口,支持开发者使用自己喜欢的,比如模版引擎,如果你的服务和框架设计理念符合我们愿意将它加入blade组件列表。

“微” 是什么意思?

“微”(micro) 并不表示你需要把整个 Web 应用塞进单个 Java 文件,也不意味着 Blade 在功能上有所欠缺。微框架中的“微”意味着 Blade 旨在保持核心简单而易于扩展。Blade 不会替你做出太多决策——比如使用结合 权限管理。而那些 Blade 所选择的——比如使用何种模板引擎——则很容易替换。除此之外的一切都由可由你掌握。如此,Blade可以与您珠联璧合。

在JavaWeb的生态圈里 Blade 算是一个微型框架,源码不到300KB,因此一旦你熟悉使用,不仅对web框架的实现原理理解更深入,也可以快速开发小型项目。Blade的核心是IOC对象托管和路由注册,以 blade 对象为一个应用的入口像 express 那样使用起来非常方便。

Blade架构

概念

Blade 从 Rails 和 Express 中吸收了许多成熟的设计思想, 许多相同的思想被用到了框架的设计中。

Blade 通过简单的约定来支持 MVC 模式,让开发不在繁琐,告别笨重的J2EE。

MVC

  • 模型 描述基本的数据对象,特定的查询和更新逻辑。
  • 视图 一些模板,用于将数据呈现给用户。
  • 控制器 执行用户的请求,准备用户所需的数据,并指定模板进行渲染。

整体设计


Blade简介 - 图1

blade 是以 blade-mvc为核心的构建的,是一个高度解耦的框架。

blade 设计之初就考虑了模块化使用,用独立的组件进行开发,部分组件不依赖 blade,例如:你可以使用 blade-cache 模块来做你的缓存逻辑;使用 blade-jdbc 模块来操作数据库。

执行逻辑

既然是基于 blade-mvc 构建的,那么他的执行逻辑是怎么样的呢?blade是一个典型的MVC架构,他的执行逻辑如下图所示:


blade执行逻辑

Blade特性

  • 良好的文档
  • 基于Java8开发
  • 使用Netty作为web服务
  • 不依赖servlet-api
  • RESTful路由支持
  • 内置模板引擎
  • jar包运行,打包部署方便
  • 轻量级,可扩展,高性能
  • 代码量少,不到300KB
  • ActiveRecord数据库操作

参与开源

Blade 正在积极发展,并欢迎提出建议。开放式问题可以在项目的 issues发起一个建议,我们也有一个QQ群:1013565 供开发者探讨技术。