共计 1559 个字符,预计需要花费 4 分钟才能阅读完成。
1.前言
一直以来Java Web开发给部分人以过重的感觉,但是今天,轻量级的Windward来了,你顶不顶的住!
2.快速上手
2.1添加依赖
假如使用maven构建
<dependency>
<groupId>org.flmelody</groupId>
<artifactId>windward</artifactId>
<version>1.0-RELEASE</version>
</dependency>
如果使用gradle则
implementation 'org.flmelody:windward:1.0-RELEASE'
2.2函数定义
public class Function {
// 函数入参必须WindwardContext
public static void function1(WindwardContext windwardContext) {
windwardContext.string("hello world! function1!"); // 直接返回字符串
}
public void function2(WindwardContext windwardContext) {
windwardContext.string("hello world! function2!");
}
public void function3(WindwardContext windwardContext) {
windwardContext.json(new User(1, esotericman)); // 返回json
}
}
public class User {
private final Integer userId;
private final String userName;
public Integer getUserId() {
return userId;
}
public String getUserName() {
return userName;
}
public User(Integer userId, String userName) {
this.userId = userId;
this.userName = userName;
}
}
2.3启动服务
public static void main(String[] args) throws Exception {
Windward windward = Windward.setup(); // windward引擎
// 直接注册静态方法
windward.get("/function1", Function::function1);
windward.put("/function1", Function::function1);
windward.post("/function1", Function::function1);
windward.delete("/function1", Function::function1);
// 注册非静态方法
windward.get("/function2", new Function()::function2);
// 注册路由组 同组默认同一个根路径v1
windward
.group("/v1")
.get("/function1", Function::function1)
.post("/function2", () -> "hi!")
.delete("/function3", new Function()::function3);
// 启动服务器 默认8080端口
windward.run();
}
2.4验证服务
curl http://127.0.0.1:8080/function1
3.结语
本文粗略的介绍了轻量级Java web服务Windward,Windward面向函数式接口,没有了以往Spring开发的各类注解配置,虽然更轻更灵活,但是也牺牲了部分现有的生态优势,各有利弊。
正文完