系统架构

概念

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

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

MVC

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

整体设计

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

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

执行逻辑

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

blade执行逻辑

生命周期

项目结构

blade 推荐你使用 maven 进行项目的构建,作者认为任何一门语言都需要一个主流统一的包管理器,可能速度在国内不是那么乐观,但可以试试国内的阿里云镜像,下载非常快,blade 做到了一次编码直接部署的功能,我们提倡使用普通maven工程的结构来开发web程序,看起来也更简单,项目结构如下:

一般的blade项目的目录如下所示,是一个maven类型的项目:

├─ src 
├── main
├─── java
│   ├── Application
│   ├── context
│   ├── controller
│   └── service
├─── resources
│   ├── app.properties
│   ├── static
│   │   ├── js   
│   │   ├── css   
└───└── templates

这样的结构非常清晰,是一个典型的MVC应用,我们将一个web程序分为如下部分:

java源码

  • Application: 启动程序
  • context: web初始化操作,比如数据库配置,模板引擎配置
  • controller: 控制器和路由的存储位置
  • service: 服务接口和实现 (如果需要可以加,非必需)

resources资源

  • app.properties: 程序主配置文件(如果需要可以加,非必需)
  • static: 静态资源存放文件夹
  • templates: 模板文件存放文件夹

如上的程序结构是 blade 推荐的,后面我们会详细讲解这个文档站点的开发过程,带你更深入的体验blade的魅力。