Magician的官方Web组件


当前最新版

包名 最新版本 介绍
Magician-Web 1.1.5 开始有点上道的版本

项目简介

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.createTCPServer().handler("/", req -> {
                        MagicianRequest request = (MagicianRequest) req;

                        // 在http的handler里面调用web组件
                        MagicianWeb.createWeb()
                                    .scan("com.demo.controller")// controller和拦截器所在的包名
                                    .request(request);

               }).bind(8080);

scan方法可以调用多次,以此来传入多个需要扫描的包,比如这样子:

Magician.createTCPServer().handler("/", req -> {
                        MagicianRequest request = (MagicianRequest) req;

                        // 在http的handler里面调用web组件
                        MagicianWeb.createWeb()
                                    .scan("com.demo.controller")// controller和拦截器所在的包名
                                    .scan("com.demo.controller")// controller和拦截器所在的包名
                                    .request(request);

               }).bind(8080);

如何访问

http://ip:端口号, 或者域名/类上的route/方法上的route

results matching ""

    No results matching ""