From eb869e88a828472a4e9759ec1ae34688ebc5c29f Mon Sep 17 00:00:00 2001 From: Button <2740277548@qq.com> Date: Sun, 18 Apr 2021 19:03:29 +0800 Subject: [PATCH 1/3] =?UTF-8?q?Springboot=E6=95=B4=E5=90=88Knife4j?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- springboot-knife4j/.gitignore | 31 ++++++ springboot-knife4j/README.md | 3 + springboot-knife4j/pom.xml | 96 ++++++++++++++++++ .../button/SpringbootKnife4jApplication.java | 13 +++ .../com/button/config/Swagger2Config.java | 38 +++++++ .../com/button/controller/UserController.java | 23 +++++ .../java/com/button/domain/vo/ResultData.java | 99 +++++++++++++++++++ .../src/main/resources/application.yml | 9 ++ .../SpringbootKnife4jApplicationTests.java | 13 +++ 9 files changed, 325 insertions(+) create mode 100644 springboot-knife4j/.gitignore create mode 100644 springboot-knife4j/README.md create mode 100644 springboot-knife4j/pom.xml create mode 100644 springboot-knife4j/src/main/java/com/button/SpringbootKnife4jApplication.java create mode 100644 springboot-knife4j/src/main/java/com/button/config/Swagger2Config.java create mode 100644 springboot-knife4j/src/main/java/com/button/controller/UserController.java create mode 100644 springboot-knife4j/src/main/java/com/button/domain/vo/ResultData.java create mode 100644 springboot-knife4j/src/main/resources/application.yml create mode 100644 springboot-knife4j/src/test/java/com/button/SpringbootKnife4jApplicationTests.java diff --git a/springboot-knife4j/.gitignore b/springboot-knife4j/.gitignore new file mode 100644 index 0000000..a2a3040 --- /dev/null +++ b/springboot-knife4j/.gitignore @@ -0,0 +1,31 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/** +!**/src/test/** + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ + +### VS Code ### +.vscode/ diff --git a/springboot-knife4j/README.md b/springboot-knife4j/README.md new file mode 100644 index 0000000..717c860 --- /dev/null +++ b/springboot-knife4j/README.md @@ -0,0 +1,3 @@ +# Spring Boot整合Knife4j + +http://localhost:8080/doc.html \ No newline at end of file diff --git a/springboot-knife4j/pom.xml b/springboot-knife4j/pom.xml new file mode 100644 index 0000000..95aa979 --- /dev/null +++ b/springboot-knife4j/pom.xml @@ -0,0 +1,96 @@ + + + 4.0.0 + com.button + springboot-knife4j + 0.0.1-SNAPSHOT + springboot-knife4j + Spring Boot Knife4j + + + 1.8 + UTF-8 + UTF-8 + 2.3.7.RELEASE + + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-devtools + runtime + true + + + org.projectlombok + lombok + true + + + org.springframework.boot + spring-boot-starter-test + test + + + org.junit.vintage + junit-vintage-engine + + + + + com.github.xiaoymin + knife4j-spring-boot-starter + 3.0.2 + + + + + + + org.springframework.boot + spring-boot-dependencies + ${spring-boot.version} + pom + import + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 1.8 + 1.8 + UTF-8 + + + + org.springframework.boot + spring-boot-maven-plugin + 2.3.7.RELEASE + + com.button.SpringbootKnife4jApplication + + + + repackage + + repackage + + + + + + + + diff --git a/springboot-knife4j/src/main/java/com/button/SpringbootKnife4jApplication.java b/springboot-knife4j/src/main/java/com/button/SpringbootKnife4jApplication.java new file mode 100644 index 0000000..33429c3 --- /dev/null +++ b/springboot-knife4j/src/main/java/com/button/SpringbootKnife4jApplication.java @@ -0,0 +1,13 @@ +package com.button; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class SpringbootKnife4jApplication { + + public static void main(String[] args) { + SpringApplication.run(SpringbootKnife4jApplication.class, args); + } + +} diff --git a/springboot-knife4j/src/main/java/com/button/config/Swagger2Config.java b/springboot-knife4j/src/main/java/com/button/config/Swagger2Config.java new file mode 100644 index 0000000..a5f9281 --- /dev/null +++ b/springboot-knife4j/src/main/java/com/button/config/Swagger2Config.java @@ -0,0 +1,38 @@ +package com.button.config; + +import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +@Configuration +@EnableSwagger2 +@EnableKnife4j +public class Swagger2Config { + @Bean + public Docket createRestApi() { + return new Docket(DocumentationType.SWAGGER_2) + .useDefaultResponseMessages(false) + .apiInfo(apiInfo()) + .select() + .apis(RequestHandlerSelectors.basePackage("com.button.controller")) + .paths(PathSelectors.any()) + .build(); + + } + + private ApiInfo apiInfo() { + return new ApiInfoBuilder() + .title("springboot整合Knife4j") + .description("springboot整合Knife4j") + .termsOfServiceUrl("http://localhost:8080/") + .version("1.0") + .build(); + } +} diff --git a/springboot-knife4j/src/main/java/com/button/controller/UserController.java b/springboot-knife4j/src/main/java/com/button/controller/UserController.java new file mode 100644 index 0000000..3a7cef0 --- /dev/null +++ b/springboot-knife4j/src/main/java/com/button/controller/UserController.java @@ -0,0 +1,23 @@ +package com.button.controller; + +import com.button.domain.vo.ResultData; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.UUID; + +@Slf4j +@RequestMapping("/user") +@RestController +public class UserController { + + @ApiOperation(value = "用户登录测试接口", notes = "用户登录试接口000") + @PostMapping("login") + public ResultData login(@RequestParam String userName, @RequestParam String passWord){ + return ResultData.success(userName + "," + passWord); + } + +} diff --git a/springboot-knife4j/src/main/java/com/button/domain/vo/ResultData.java b/springboot-knife4j/src/main/java/com/button/domain/vo/ResultData.java new file mode 100644 index 0000000..40ee386 --- /dev/null +++ b/springboot-knife4j/src/main/java/com/button/domain/vo/ResultData.java @@ -0,0 +1,99 @@ +package com.button.domain.vo; + +import java.io.Serializable; + +public class ResultData implements Serializable { + + private static final long serialVersionUID = 1L; + public static final ErrorMsg SUCCESS = new ErrorMsg("success", "操作成功"); + public static final ErrorMsg EXCEPTION = new ErrorMsg("exception", "系统忙,请稍后重试"); + public static final ErrorMsg REQUEST_FAILED = new ErrorMsg("request.failed", "网络请求异常"); + public static final ErrorMsg ERROR_NO_DATA = new ErrorMsg("error.no.data", "无数据"); + + private ErrorMsg errorMsg; + private T data; + private Integer time; + + public static ResultData success(T data) { + ResultData result = new ResultData(); + result.setErrorMsg(SUCCESS); + result.setData(data); + result.setTime((int)(System.currentTimeMillis() / 1000)); + return result; + } + + public static ResultData error(ErrorMsg error) { + ResultData result = new ResultData(); + result.setErrorMsg(error); + return result; + } + + public Integer getTime() { + return time; + } + + public void setTime(Integer time) { + this.time = time; + } + + public T getData() { + return data; + } + + public void setData(T data) { + this.data = data; + } + + public ErrorMsg getErrorMsg() { + return errorMsg; + } + + public void setErrorMsg(ErrorMsg errorMsg) { + this.errorMsg = errorMsg; + } + + public boolean isSuccessful() { + return SUCCESS.getCode().equals(this.errorMsg.getCode()); + } + + public boolean errorFor(ErrorMsg errMsg) { + return this.errorMsg.getCode().equalsIgnoreCase(errMsg.getCode()); + } + + public static class ErrorMsg implements Serializable { + private static final long serialVersionUID = -8899306544168830547L; + private String code; + private String message; + + public ErrorMsg(String code, String message) { + this.code = code; + this.message = message; + } + + public String getCode() { + return this.code; + } + + public String getMessage() { + return this.message; + } + + public ErrorMsg setParam(String key, String value) { + return new ErrorMsg(this.code, this.message.replace(key, value)); + } + + public ErrorMsg withParam(String value) { + return setParam("PARA_NAME", value); + } + + @Override + public String toString() { + return "[code=" + code + ", message=" + message + "]"; + } + } + + @Override + public String toString() { + return "[errorMsg=" + errorMsg + ", data=" + data + "]"; + } +} diff --git a/springboot-knife4j/src/main/resources/application.yml b/springboot-knife4j/src/main/resources/application.yml new file mode 100644 index 0000000..89fdb2e --- /dev/null +++ b/springboot-knife4j/src/main/resources/application.yml @@ -0,0 +1,9 @@ +# 应用名称 +spring: + application: + name: springboot-knife4j +# 应用服务 WEB 访问端口 +server: + port: 8080 + + diff --git a/springboot-knife4j/src/test/java/com/button/SpringbootKnife4jApplicationTests.java b/springboot-knife4j/src/test/java/com/button/SpringbootKnife4jApplicationTests.java new file mode 100644 index 0000000..e94b15a --- /dev/null +++ b/springboot-knife4j/src/test/java/com/button/SpringbootKnife4jApplicationTests.java @@ -0,0 +1,13 @@ +package com.button; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class SpringbootKnife4jApplicationTests { + + @Test + void contextLoads() { + } + +} -- Gitee From 35be0bbb8bae5dbb1e34bcaed944889268333660 Mon Sep 17 00:00:00 2001 From: Button <2740277548@qq.com> Date: Sun, 18 Apr 2021 19:05:33 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=9B=B4=E6=96=B0README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index da451f0..5aac198 100644 --- a/README.md +++ b/README.md @@ -27,4 +27,6 @@ SpringBoot应用集合 - [SpringBoot整合netty](https://gitee.com/superbutton/SpringBoot-Components/tree/develop/Springboot-Netty-Parent) - [SpringBoot整合webservice](https://gitee.com/superbutton/SpringBoot-Components/tree/develop/Springboot-Webservice) - [SpringBoot整合ActiveMq](https://gitee.com/superbutton/SpringBoot-Components/tree/develop/Springboot-ActiveMq) +- [SpringBoot整合Knife4j](https://gitee.com/superbutton/SpringBoot-Components/tree/develop/springboot-knife4j) + -- Gitee From bdd70254290c7b60fb6ae44dba1ded15fb6cb34e Mon Sep 17 00:00:00 2001 From: Button <2740277548@qq.com> Date: Sun, 18 Apr 2021 19:18:59 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/button/controller/UserController.java | 11 +++++++++-- .../main/java/com/button/domain/vo/ResultData.java | 3 +++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/springboot-knife4j/src/main/java/com/button/controller/UserController.java b/springboot-knife4j/src/main/java/com/button/controller/UserController.java index 3a7cef0..b44b96d 100644 --- a/springboot-knife4j/src/main/java/com/button/controller/UserController.java +++ b/springboot-knife4j/src/main/java/com/button/controller/UserController.java @@ -1,9 +1,11 @@ package com.button.controller; +import com.button.domain.bean.User; import com.button.domain.vo.ResultData; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -14,10 +16,15 @@ import java.util.UUID; @RestController public class UserController { - @ApiOperation(value = "用户登录测试接口", notes = "用户登录试接口000") - @PostMapping("login") + @ApiOperation(value = "用户登录测试接口", notes = "用户登录接口") + @GetMapping("login") public ResultData login(@RequestParam String userName, @RequestParam String passWord){ return ResultData.success(userName + "," + passWord); } + @ApiOperation(value = "获取用户信息", notes = "获取用户信息") + @PostMapping("userInfo") + public ResultData userInfo(@RequestBody User user){ + return ResultData.success(user); + } } diff --git a/springboot-knife4j/src/main/java/com/button/domain/vo/ResultData.java b/springboot-knife4j/src/main/java/com/button/domain/vo/ResultData.java index 40ee386..1c5001d 100644 --- a/springboot-knife4j/src/main/java/com/button/domain/vo/ResultData.java +++ b/springboot-knife4j/src/main/java/com/button/domain/vo/ResultData.java @@ -2,6 +2,9 @@ package com.button.domain.vo; import java.io.Serializable; +/** + * @author Button + */ public class ResultData implements Serializable { private static final long serialVersionUID = 1L; -- Gitee