Magician的官方Web组件

快速搭建 - 图1 快速搭建 - 图2 快速搭建 - 图3 快速搭建 - 图4

当前最新版

包名最新版本介绍
Magician-Web1.1.2初始版本

项目简介

Magician-Web 是 Magician的官方Web组件,实现了以Controller的方式来进行参数的接口和响应

安装步骤

一、导入依赖

  1. <!-- 这个是本项目打的jar包 -->
  2. <dependency>
  3. <groupId>com.github.yuyenews</groupId>
  4. <artifactId>Magician-Web</artifactId>
  5. <version>最新版</version>
  6. </dependency>
  7. <!-- 这个是Magician,一个网络编程包,属于项目核心 -->
  8. <dependency>
  9. <groupId>com.github.yuyenews</groupId>
  10. <artifactId>Magician</artifactId>
  11. <version>最新版</version>
  12. </dependency>
  13. <!-- 这个是日志包,支持任意可以跟slf4j桥接的包 -->
  14. <dependency>
  15. <groupId>org.slf4j</groupId>
  16. <artifactId>slf4j-jdk14</artifactId>
  17. <version>1.7.12</version>
  18. </dependency>

二、创建Controller

  1. @Route("/demoController")
  2. public class DemoController {
  3. // 可以用实体类接参
  4. @Route(value = "/demo", requestMethod = ReqMethod.POST)
  5. public DemoVO demo(DemoVO demoVO){
  6. return demoVO;
  7. }
  8. // 也可以直接用MagicianRequest 来获取参数
  9. @Route(value = "/demob", requestMethod = ReqMethod.POST)
  10. public String demob(MagicianRequest request){
  11. return "ok";
  12. }
  13. // 文件下载
  14. @Route(value = "/demob", requestMethod = ReqMethod.POST)
  15. public ResponseInputStream demob(){
  16. ResponseInputStream responseInputStream = new ResponseInputStream();
  17. responseInputStream.setName("文件名");
  18. responseInputStream.setInputStream(文件流);
  19. return responseInputStream;
  20. }
  21. }

Controller返回的如果不是文件流,都会被转成Json返回,否则会当做文件下载处理

三、创建服务

  1. Magician.createHttpServer().httpHandler("/", req -> {
  2. MagicianWeb.createWeb()
  3. .scan(传入Controller所在的包名)
  4. .request(req);
  5. }).bind(8080).start();

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

  1. Magician.createHttpServer().httpHandler("/", req -> {
  2. MagicianWeb.createWeb()
  3. .scan(传入Controller所在的包名A)
  4. .scan(传入Controller所在的包名B)
  5. .request(req);
  6. }).bind(8080).start();

如何访问

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