1. 介绍
轻量级、高性能、简洁优雅的 Web 框架。
基于 Java8 开发,为个人开发者打造的轻量级 MVC 框架, 你只需要创建普通的 Maven 工程即可完成一个简单的应用。
设计理念:https://lets-blade.com/docs/blade-design.html
2. 快速入门
2.1 创建工程
maven 构建,JDK 1.8 编译。
2.1.1 依赖引入
pom 依赖如下:
<properties>
<blade-mvc.version>2.0.9.BETA3</blade-mvc.version>
</properties>
<dependencies>
<!-- mvc dependency -->
<dependency>
<groupId>com.bladejava</groupId>
<artifactId>blade-mvc</artifactId>
<version>${blade-mvc.version}</version>
</dependency>
</dependencies>
<build>
<finalName>hello</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
2.1.2 运行类编写
package com.example;
import com.blade.Blade;
public class Application {
public static void main(String[] args) {
Blade.of().get("/", ctx -> ctx.text("Hello World!")).start(Application.class, args);
}
}
2.1.3 启动看效果
启动应用后,即可用用浏览器访问:http://127.0.0.1:9000
2.2 创建路由
注册路由两种方式:
- 使用
Blade
对象硬编码注册 - 通过控制器来管理多个路由。
编写一个控制器,在你的 Application
所在目录之下,我们最好将它放在 controller
包中,看到名字也就知道是控制器了。
@Path
public class IndexController {
@GetRoute("/")
public String index(){
return "index.html";
}
@PostRoute("/save")
public void saveUser(@Param String username){
System.out.println("username:" + username);
}
@PutRoute("/update")
public void updateUser(@Param String username){
System.out.println("username:" + username);
}
@DeleteRoute("/delete/:uid")
public void updateUser(@PathParam Integer uid){
System.out.println("delete user:" + uid);
}
}
四种路由中包含:
- 访问路径
- 请求方法
- 具体执行的方法体
Blade 提供了四种请求方式:GET
, POST
,PUT
, DELETE
。
2.3 静态文件
2.3.1 默认静态资源
Blade 默认设置了 static
、assets
、webjars
、upload
文件夹皆为静态资源目录。 你也可以自定义设置某个目录,这里我们就使用 static
目录作为存储。
2.3.2 自定义资源目录
- 通过编码设置:
blade.addStatics("/zhuangbi")
- 通过配置文件:
mvc.statics=/zhuangbi
2.3.3 静态资源目录下的列表开启
- 通过编码设置:
blade.showFileList(true)
- 通过配置文件:
mvc.statics.list=true
2.3.4 webjars
静态资源以 jar 方式引入。
2.4 渲染视图
渲染模板的准则:
- 所有的模板文件都存储在
resources/templates
目录下
你可以调用 Response
方法的 render
方法渲染或者返回一个 String
类型的视图路径。
@GetRoute("/index")
public void renderIndex(Response response){
response.render("index.html");
}
@GetRoute("/index2")
public String renderIndex(Response response){
return "index.html";
}