解决springboot引入swagger2不生效问题

 更新时间:2022年05月17日 08:53:52   作者:爱好jyh  
这篇文章主要为大家介绍了解决springboot引入swagger2不生效问题的方案,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

今天遇到跟同事遇到一个由于失误导致的问题,也可以说比较难发现了.在此记录一下(我们用的springboot是2.0.3,swagger是2.2.2)

问题描述:

swagger修改title,description等都不生效。并且启动springboot,没有有去加载swagger的配置类。(在debug模式启动)

经过不断的查找,发现了原因是:swagger的配置类的注解加错了。@Configuration不小心写成了@Configurable.

还有就是@EnableSwagger2注解只需要加在swagger配置类上

springboot引入swagger2的步骤:

①引入依赖

<!--  引入swagger包 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.2.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.2.2</version>
        </dependency>

②编写Swagger2的配置类

@Configuration
@EnableSwagger2
public class Swagger2Config {
    @Bean
    public Docket api(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(getApiInfo())
                .select()
               .apis(RequestHandlerSelectors.basePackage("com.xx.controller"))
                .paths(PathSelectors.any())
                .build();
    }
    private ApiInfo getApiInfo(){
        return new ApiInfoBuilder()
                .title("Swagger2....")
                .description("Swagger2")
                .version("1.0")
                .license("Apache 2.0")
                .licenseUrl("http://www.apache.org/licenses/LICENSE-2.0")
                .build();
    }
}

③在controller中添加注解:按需添加注解

@Controller
@RequestMapping("/user")
@Api(tags = "我的接口模块")
public class UserController {
    @Autowired
    private UserService userService;
	//注意这个注解跟请求对应的@XxxMapping,要不然这个接口会生成好多方法
    @GetMapping(value = "/getUserById")
    @ResponseBody
    @ApiOperation(value = "根据ID查询User")
    public User getUserById(@RequestParam(value = "id") int id){
        return userService.getUserById(id);
    }
}

④在model(pojo)上加注解,按需添加

@ApiModel(value = "用户对象")
public class User {
    @ApiModelProperty(value = "用户ID", name = "userId")
    private Integer userId;
    @ApiModelProperty(value = "用户姓名",name = "userName")
    private String userName;
    @ApiModelProperty(value = "用户密码",name = "password")
    private String password;
    @ApiModelProperty(value = "用户手机号",name = "phone")
    private String phone;

一些注解的使用

@Api:一般用于Controller中,用于接口分组

@ApiOperation:接口说明,用于api方法上。

@ApiImplicitParams:用在方法上包含一组参数说明

@ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面

paramType:参数放在哪个地方

header 请求参数的获取:@RequestHeader

query 请求参数的获取:@RequestParam

path(用于restful接口) 请求参数的获取:@PathVariable

body(不常用)

form(不常用)

name:参数名

dataType:参数类型

required:参数是否必须传

value:参数的意思

defaultValue:参数的默认值

@ApiResponses:用于表示一组响应

@ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息

code:数字,例如400

message:信息&#xff0c;例如”请求参数没填好”

response:抛出异常的类

@ApiModel:描述一个Model的信息(这种一般用在post创建的时候,使用@RequestBody这样的场景,请求参数无法使用@ApiImplicitParam注解进行描述的时候)表明这是一个被swagger框架管理的model,用于class上

@ApiModelProperty :使用在实体类上的成员变量上,描述成员变量的含义。

以上就是解决springboot引入swagger2不生效问题的详细内容,更多关于springboot引入swagger2的资料请关注脚本之家其它相关文章!

相关文章

  • SpringBoot 对象存储 MinIO的详细过程

    SpringBoot 对象存储 MinIO的详细过程

    MinIO 是一个基于 Go 实现的高性能、兼容 S3 协议的对象存储,它适合存储海量的非结构化的数据,这篇文章主要介绍了SpringBoot 对象存储 MinIO,需要的朋友可以参考下
    2023-07-07
  • HttpsURLConnection上传文件流(实例讲解)

    HttpsURLConnection上传文件流(实例讲解)

    下面小编就为大家带来一篇HttpsURLConnection上传文件流(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • SpringBoot 统一异常处理的实现示例

    SpringBoot 统一异常处理的实现示例

    本文主要介绍了SpringBoot 统一异常处理的实现示例,目的就是在异常发生时,尽可能地减少破坏,下面就来介绍一下,感兴趣的可以了解一下
    2024-07-07
  • Spring Native项目实战(体验79毫秒启动springboot应用)

    Spring Native项目实战(体验79毫秒启动springboot应用)

    Spring Native是Spring提供的、制作native image的技术方案,本篇主要内容是开发springboot应用再构建为native image的方法,通过Spring Native项目实战让大家体验79毫秒启动springboot应用,感兴趣的朋友跟随小编一起看看吧
    2021-05-05
  • Gradle快速安装及入门

    Gradle快速安装及入门

    今天小编就为大家分享一篇关于Gradle快速安装及入门,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • java回溯算法解数独问题

    java回溯算法解数独问题

    这篇文章主要为大家详细介绍了java回溯算法解数独问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • 一文详解Java中流程控制语句

    一文详解Java中流程控制语句

    在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说,程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。本文就来通过一些示例带大家详细了解一下
    2022-10-10
  • idea 开发神器之idea插件汇总

    idea 开发神器之idea插件汇总

    这篇文章主要介绍了idea 开发神器之idea插件汇总,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • MyBatis的逆向工程详解

    MyBatis的逆向工程详解

    这篇文章主要介绍了MyBatis的逆向工程详解,详细的介绍了逆行工程的概念和实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • 使用nacos实现自定义文本配置的实时刷新

    使用nacos实现自定义文本配置的实时刷新

    我们都知道,使用Nacos时,如果将Bean使用@RefreshScope标注之后,这个Bean中的配置就会做到实时刷新,本文给大家介绍了如何使用nacos实现自定义文本配置的实时刷新,需要的朋友可以参考下
    2024-05-05

最新评论