yegang 3 years ago
parent
commit
42a63cfcb2

+ 31 - 15
pom.xml

@@ -18,17 +18,17 @@
     <properties>
         <java.version>1.8</java.version>
         <docker.image.prefix>mask</docker.image.prefix>
-<!--        <elasticsearch.version>8.0.1</elasticsearch.version>-->
+        <!--        <elasticsearch.version>8.0.1</elasticsearch.version>-->
     </properties>
     <dependencies>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
         </dependency>
-<!--        <dependency>-->
-<!--            <groupId>org.springframework.boot</groupId>-->
-<!--            <artifactId>spring-boot-starter</artifactId>-->
-<!--        </dependency>-->
+        <!--        <dependency>-->
+        <!--            <groupId>org.springframework.boot</groupId>-->
+        <!--            <artifactId>spring-boot-starter</artifactId>-->
+        <!--        </dependency>-->
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-test</artifactId>
@@ -81,16 +81,16 @@
             <version>3.16.7</version>
         </dependency>
         <!--hutool工具类-->
-<!--        <dependency>-->
-<!--            <groupId>cn.hutool</groupId>-->
-<!--            <artifactId>hutool-core</artifactId>-->
-<!--            <version>4.4.0</version>-->
-<!--        </dependency>-->
-<!--        <dependency>-->
-<!--            <groupId>cn.hutool</groupId>-->
-<!--            <artifactId>hutool-all</artifactId>-->
-<!--            <version>4.5.7</version>-->
-<!--        </dependency>-->
+        <!--        <dependency>-->
+        <!--            <groupId>cn.hutool</groupId>-->
+        <!--            <artifactId>hutool-core</artifactId>-->
+        <!--            <version>4.4.0</version>-->
+        <!--        </dependency>-->
+        <!--        <dependency>-->
+        <!--            <groupId>cn.hutool</groupId>-->
+        <!--            <artifactId>hutool-all</artifactId>-->
+        <!--            <version>4.5.7</version>-->
+        <!--        </dependency>-->
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-data-mongodb</artifactId>
@@ -109,6 +109,22 @@
             <artifactId>jsoup</artifactId>
             <version>1.11.2</version>
         </dependency>
+        <dependency>
+            <groupId>org.rxtx</groupId>
+            <artifactId>rxtx</artifactId>
+            <version>2.1.7</version>
+        </dependency>
+        <!-- swagger -->
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger-ui</artifactId>
+            <version>3.0.0</version>
+        </dependency>
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-boot-starter</artifactId>
+            <version>3.0.0</version>
+        </dependency>
     </dependencies>
     <build>
         <plugins>

+ 2 - 2
src/main/java/com/sw/MaskApplication.java

@@ -3,8 +3,8 @@ package com.sw;
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
-
-
+import org.springframework.web.servlet.config.annotation.EnableWebMvc;
+@EnableWebMvc
 @MapperScan("com.sw.dao")
 @SpringBootApplication
 public class MaskApplication {

+ 76 - 0
src/main/java/com/sw/config/SwaggerConfig.java

@@ -0,0 +1,76 @@
+package com.sw.config;
+
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.config.BeanPostProcessor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.util.ReflectionUtils;
+import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.service.Contact;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.spring.web.plugins.WebFluxRequestHandlerProvider;
+import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+import java.lang.reflect.Field;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Configuration
+@EnableSwagger2
+public class SwaggerConfig {
+    @Bean
+    public Docket createRestApi() {
+        return new Docket(DocumentationType.OAS_30)
+                .apiInfo(apiInfo())
+                .select()
+                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
+                .paths(PathSelectors.any())
+                .build();
+    }
+
+    private ApiInfo apiInfo() {
+        return new ApiInfoBuilder()
+                .title("api文档")
+                .build();
+    }
+
+    @Bean
+    public static BeanPostProcessor springfoxHandlerProviderBeanPostProcessor() {
+        return new BeanPostProcessor() {
+
+            @Override
+            public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
+                if (bean instanceof WebMvcRequestHandlerProvider || bean instanceof WebFluxRequestHandlerProvider) {
+                    customizeSpringfoxHandlerMappings(getHandlerMappings(bean));
+                }
+                return bean;
+            }
+
+            private <T extends RequestMappingInfoHandlerMapping> void customizeSpringfoxHandlerMappings(List<T> mappings) {
+                List<T> copy = mappings.stream()
+                        .filter(mapping -> mapping.getPatternParser() == null)
+                        .collect(Collectors.toList());
+                mappings.clear();
+                mappings.addAll(copy);
+            }
+
+            @SuppressWarnings("unchecked")
+            private List<RequestMappingInfoHandlerMapping> getHandlerMappings(Object bean) {
+                try {
+                    Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings");
+                    field.setAccessible(true);
+                    return (List<RequestMappingInfoHandlerMapping>) field.get(bean);
+                } catch (IllegalArgumentException | IllegalAccessException e) {
+                    throw new IllegalStateException(e);
+                }
+            }
+        };
+    }
+}

+ 13 - 5
src/main/java/com/sw/controller/TestController.java

@@ -4,8 +4,12 @@ import com.sw.domain.SysTest;
 import com.sw.domain.SysUser;
 import com.sw.service.SysTestService;
 import com.sw.service.SysUserService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -18,27 +22,31 @@ import java.util.List;
  * @author yegang
  * @create 2022-02-17 15:25
  **/
+@Api(tags = "测试相关接口")
 @RestController
 public class TestController {
     @Autowired
     SysTestService sysTestService;
     @Autowired
     SysUserService sysUserService;
-    @RequestMapping("/test")
-    public  String  test(){
+    @ApiOperation("测试的接口")
+    @GetMapping("/test")
+    public   List<SysTest>  test(){
         List<SysTest> list = sysTestService.list();
         System.out.println(list);
         System.out.println("this is a new operate");
-        return "test";
+        return list;
     }
-    @RequestMapping("/get/{id}")
+    @GetMapping("/get/{id}")
+    @ApiOperation("获取用户的接口")
+    @ApiImplicitParam(name = "id" ,required = true)
     public Integer getUser(@PathVariable int id){
         System.out.println("this is test data");
         SysUser user = sysUserService.getById(id);
         return user.getId();
     }
 
-    @RequestMapping("/add")
+    @GetMapping("/add")
     public void getUser(){
         System.out.println("this is add method");
     }

+ 5 - 0
src/main/java/com/sw/domain/SysTest.java

@@ -1,6 +1,8 @@
 package com.sw.domain;
 
 import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -13,15 +15,18 @@ import java.io.Serializable;
  */
 @Data
 @TableName("sys_test")
+@ApiModel("测试实体类")
 public class SysTest implements Serializable {
     private static final long serialVersionUID = 734298413127804175L;
     /**
      * 主键
      */
+    @ApiModelProperty(value = "标识",dataType="int",name="id",example="1")
     private Integer id;
     /**
      * 名称
      */
+    @ApiModelProperty(value = "名称",dataType="String",name="name",example="张三")
     private String name;
 
 

+ 4 - 1
src/main/java/com/sw/domain/SysUser.java

@@ -1,6 +1,8 @@
 package com.sw.domain;
 
 import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 
@@ -14,9 +16,10 @@ import java.io.Serializable;
  */
 @Data
 @AllArgsConstructor
+@ApiModel("用户信息实体类")
 @TableName("sys_user")
 public class SysUser implements Serializable {
     private static final long serialVersionUID = 616589298019846813L;
-
+    @ApiModelProperty(value = "标识",dataType="int",name="id",example="1")
     private Integer id;
 }

+ 1 - 1
src/main/resources/application.yml

@@ -1,5 +1,5 @@
 server:
-  port: 8089
+  port: 8099
 spring:
   data:
     mongodb: