• spring-boot搭建的swaagger的api项目


    一,spring-boot搭建的swaagger的api项目

     二,如下代码

    package com.nl.demo.config;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.annotation.Bean;
    import springfox.documentation.builders.PathSelectors;
    import springfox.documentation.builders.RequestHandlerSelectors;
    import springfox.documentation.spi.DocumentationType;
    import springfox.documentation.spring.web.paths.RelativePathProvider;
    import springfox.documentation.spring.web.plugins.Docket;
    import springfox.documentation.swagger2.annotations.EnableSwagger2;
    
    import javax.servlet.ServletContext;
    
    @EnableSwagger2
    public class SwaggerConfig {
        @Autowired
        /*ServletContext,是一个全局的储存信息的空间,服务器开始,其就存在,服务器关闭,
        其才释放。request,一个用户可有多个;session,一个用户一个;而servletContext,
        所有用户共用一个。所以,为了节省空间,提高效率,ServletContext中,
        要放必须的、重要的、所有用户需要共享的线程又是安全的一些信息。*/
        private ServletContext servletContext;
    
        @Bean
        public Docket docket() {
            return new Docket(DocumentationType.SWAGGER_2)
                    .enable(true)
                    .select()
                    //接口的包名
                    .apis(RequestHandlerSelectors.basePackage("com.nl.testmybatis.controllers"))
                    .paths(PathSelectors.any())
                    .build()
                    .pathProvider(new RelativePathProvider(servletContext) {
                        @Override
                        public String getApplicationBasePath() {
                            return "/";
                        }
                    });
        }
    }
    package com.nl.demo.controllers;
    
    import io.swagger.annotations.ApiOperation;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.io.*;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    @RestController
    @RequestMapping("test")
    public class TestController {
    
    
        @ApiOperation("getDate")
        @GetMapping("getDate")
        public String getDate() throws IOException {
            Date date=new Date();
            SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            System.out.println( simpleDateFormat.format(date));
            return  simpleDateFormat.format(date);
        }
    }
    package com.nl.demo;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import springfox.documentation.swagger2.annotations.EnableSwagger2;
    
    @SpringBootApplication
    @EnableSwagger2
    public class TestApplication {
        public  static  void  main(String[] args){
            SpringApplication.run(TestApplication.class);
            System.out.print("111111");
        }
    }

    application.yml

    server:
      port: 8080
      servlet:
        context-path: /
    ###swagger如下都是必须的配置,
    ###不然有可能访问http://localhost:8080/swagger-ui.html,会出现Whitelabel Error Page
    spring:
      mvc:
        static-path-pattern: /**

    三,直接访问http://localhost:8080/swagger-ui.html就可以了

    四,bug可能会出现swagger-ui.html出现Whitelabel Error Page,但是再配置里添加如下代码即可,原因是读取资源文件的路径不对

    spring:
      mvc:
        static-path-pattern: /**
  • 相关阅读:
    MySQL索引底层的实现
    mysql索引深入优化
    explain详解与索引最佳实践
    (MYSQL)回表查询原理,利用联合索引实现索引覆盖
    为什么重复值高的字段不能建索引(比如性别字段等)
    Spring的事务
    为什么要用Redis?Redis为什么这么快?
    spring AOP
    钩子教程
    钩子教程
  • 原文地址:https://www.cnblogs.com/May-day/p/14600316.html
Copyright © 2020-2023  润新知