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
是以 blade-mvc
为核心的构建的,是一个高度解耦的框架。
blade
设计之初就考虑了模块化使用,用独立的组件进行开发,部分组件不依赖 blade
,例如:你可以使用 blade-cache
模块来做你的缓存逻辑;使用 blade-jdbc
模块来操作数据库。
执行逻辑
既然是基于 blade-mvc
构建的,那么他的执行逻辑是怎么样的呢?blade
是一个典型的MVC架构,他的执行逻辑如下图所示:
Blade特性
- 良好的文档
- 基于Java8开发
- 使用Netty作为web服务
- 不依赖servlet-api
- RESTful路由支持
- 内置模板引擎
- jar包运行,打包部署方便
- 轻量级,可扩展,高性能
- 代码量少,不到300KB
- ActiveRecord数据库操作
参与开源
Blade 正在积极发展,并欢迎提出建议。开放式问题可以在项目的 issues发起一个建议,我们也有一个QQ群:1013565 供开发者探讨技术。