Magician的官方Web组件
当前最新版
包名 | 最新版本 | 介绍 |
Magician-Web | 1.1.2 | 初始版本 |
项目简介
Magician-Web 是 Magician的官方Web组件,实现了以Controller的方式来进行参数的接口和响应
安装步骤
一、导入依赖
<!-- 这个是本项目打的jar包 -->
<dependency>
<groupId>com.github.yuyenews</groupId>
<artifactId>Magician-Web</artifactId>
<version>最新版</version>
</dependency>
<!-- 这个是Magician,一个网络编程包,属于项目核心 -->
<dependency>
<groupId>com.github.yuyenews</groupId>
<artifactId>Magician</artifactId>
<version>最新版</version>
</dependency>
<!-- 这个是日志包,支持任意可以跟slf4j桥接的包 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version>1.7.12</version>
</dependency>
二、创建Controller
@Route("/demoController")
public class DemoController {
// 可以用实体类接参
@Route(value = "/demo", requestMethod = ReqMethod.POST)
public DemoVO demo(DemoVO demoVO){
return demoVO;
}
// 也可以直接用MagicianRequest 来获取参数
@Route(value = "/demob", requestMethod = ReqMethod.POST)
public String demob(MagicianRequest request){
return "ok";
}
// 文件下载
@Route(value = "/demob", requestMethod = ReqMethod.POST)
public ResponseInputStream demob(){
ResponseInputStream responseInputStream = new ResponseInputStream();
responseInputStream.setName("文件名");
responseInputStream.setInputStream(文件流);
return responseInputStream;
}
}
Controller返回的如果不是文件流,都会被转成Json返回,否则会当做文件下载处理
三、创建服务
Magician.createHttpServer().httpHandler("/", req -> {
MagicianWeb.createWeb()
.scan(传入Controller所在的包名)
.request(req);
}).bind(8080).start();
scan方法可以调用多次,以此来传入多个需要扫描的包,比如这样子:
Magician.createHttpServer().httpHandler("/", req -> {
MagicianWeb.createWeb()
.scan(传入Controller所在的包名A)
.scan(传入Controller所在的包名B)
.request(req);
}).bind(8080).start();
如何访问
http://ip:端口号, 或者域名/类上的route/方法上的route