//注解开启swagger2功能@EnableSwagger2//注解标示,这是一个配置类,@Configuation注解包含了@Component注解//可以不用在使用@Component注解标记这是个bean了@Configuration@EnableWebMvcpublic classSwagger2Config implementsWebMvcConfigurer {

@Value("${base.location}")//项目初始目录

privateString baseLocation;/***将Swagger2的swagger-ui.html加入资源路径下,否则Swagger2静态页面不能访问。要想使资源能够访问,可以有两种方法*一:需要配置类继承WebMvcConfigurationSupport类,实现addResourceHandlers方法。*但是实现了WebMvcConfigurationSupport以后,Spring Boot的WebMvc自动配置就会失效,具体表现比如访问不到*静态资源(js,css等)了,这是因为WebMvc的自动配置都在WebMvcAutoConfiguration类中,但是类中有这个注解*@ConditionalOnMissingBean({WebMvcConfigurationSupport.class}),意思是一旦在容器中检测到* WebMvcConfigurationSupport这个类,WebMvcAutoConfiguration类中的配置都不生效。*所以一旦我们自己写的配置类继承了WebMvcConfigurationSupport,相当于容器中已经有了WebMvcConfigurationSupport,*所有默认配置都不会生效,都得自己在配置文件中配置。*二:继承WebMvcConfigurer接口,这里采用此方法 网上有人说使用该方法会导致date编译等问题,可能在配置文件中得到解决,*本人没有碰到,不多做解释*@paramregistry*/@Overridepublic voidaddResourceHandlers(ResourceHandlerRegistry registry) {

registry.addResourceHandler("swagger-ui.html")

.addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("/webjars/**")

.addResourceLocations("classpath:/META-INF/resources/webjars/");}

/***通过createRestApi函数来构建一个DocketBean*函数名,可以随意命名,喜欢什么命名就什么命名*接口文档默认访问路径http://localhost:8080/swagger-ui.html,*配置文件中有配置此处为http://localhost:8080/springboot2/swagger-ui.html*注解说明参考博客:https://blog.csdn.net/qq_28009065/article/details/79104103,*/@BeanpublicDocket commonDocket() {

return newDocket(DocumentationType.SWAGGER_2)

.groupName("通用API接口文档")

.apiInfo(apiInfo("测试环境通用接口"))

.pathMapping("/")

.select()

.apis(RequestHandlerSelectors.basePackage(baseLocation+".web.controller"))//指向自己的controller即可

.paths(PathSelectors.any())

.build();}

@Bean// public Docket normalUserDocket() {// return new Docket(DocumentationType.SWAGGER_2)// .groupName("普通用户API文档")// .apiInfo(apiInfo("提供普通用户接口"))// .protocols(Sets.newHashSet("https","http"))// .produces(Sets.newHashSet("html/text"))// .pathMapping("/")// .select()// .apis(RequestHandlerSelectors.basePackage(baseLocation+".controller.candidate"))//设置生成的Docket对应的Controller为candidate下的所有Controller// .paths(PathSelectors.any())// .build();// } @Bean// public Docket companyUserDocket() {// return new Docket(DocumentationType.SWAGGER_2)// .groupName("企业用户API接口文档")// .apiInfo(apiInfo("提供企业用户接口"))// .pathMapping("/")// .select()// .apis(RequestHandlerSelectors.basePackage(baseLocation+".controller.company"))// .paths(PathSelectors.any())// .build();// }//设置文档信息privateApiInfo apiInfo(String desc) {

return newApiInfoBuilder()

//页面标题.title(desc)

//设置作者联系方式,可有可无.contact(newContact("chaoge","https://my.csdn.net/xiaochaogge","z28126308@163.com"))

//版本号.version("1.0")

//描述.description("API描述")

.build();}

}

/*Docket类的方法:Docket groupName(String var):设置栏目名Docket apiInfo(ApiInfo apiInfo):设置文档信息Docket pathMapping(String path):设置api根路径Docket protocols(Set protocols):设置协议,Sets为com.goolge.common下的类,Sets.newHashSet("https","http")相当于new HashSet(){{add("https");add("http");}};ApiSelectorBuilder select():初始化并返回一个API选择构造器ApiSelectorBuilder类的方法:ApiSelectorBuilder apis(Predicate selector):添加选择条件并返回添加后的ApiSelectorBuilder对象ApiSelectorBuilder paths(Predicate selector):设置路径筛选,该方法中含一句pathSelector = and(pathSelector, selector);表明条件为相与RequestHandlerSelectors类的方法:Predicate any():返回包含所有满足条件的请求处理器的断言,该断言总为truePredicate none():返回不满足条件的请求处理器的断言,该断言总为falsePredicate basePackage(final String basePackage):返回一个断言(Predicate),该断言包含所有匹配basePackage下所有类的请求路径的请求处理器PathSelectors类的方法:Predicate any():满足条件的路径,该断言总为truePredicate none():不满足条件的路径,该断言总为falsePredicate regex(final String pathRegex):符合正则的路径设置swagger-ui.html默认路径,servlet的配置文件添加:swagger-ui.html位于springfox-swagger-ui jar包中的META-INF/resources/目录下,项目编译后swagger-ui.html将添加到classpath的/META-INF/resources/下,所以添加mapping="/webjars/**"可通过localhost:端口号/项目名/swagger-ui.html打开SwaggerUI常用注解:Swagger所有注解并非必须,若不加就只显示类目/方法名/参数名没有注释而已,但若注解中含@ApiParam不对应@RequestParam将无效果@Api:注解controller,value为@RequestMapping路径@ApiOperation:注解方法,value为简要描述,notes为全面描述,hidden=true Swagger将不显示该方法,默认为false@ApiParam:注解参数,hidden=true Swagger参数列表将不显示该参数,name对应参数名,value为注释,defaultValue设置默认值,allowableValues设置范围值,required设置参数是否必须,默认为false@ApiModel:注解Model@ApiModelProperty:注解Model下的属性,当前端传过来的是一个对象时swagger中该对象的属性注解就是ApiModelProperty中的value@ApiIgnore:注解类、参数、方法,注解后将不在Swagger UI中显示*/

swagger2 集成无效_Springboot2 集成Swagger2,解决配置完成后不显示的坑相关推荐

  1. vscode显示不出中文_vscode配置中文后不显示怎么办

    vscode配置中文后不显示怎么办,中文,界面,英文,找了,设置为 vscode配置中文后不显示怎么办 易采站长站,站长之家为您整理了vscode配置中文后不显示怎么办的相关内容. vscode配置中 ...

  2. 解决配置.zshrc后zsh命令突然失效的问题

    在.zshrc中加了PATH后,发现没有配置好,想用vim修改-/.zshrc,发现vim open均失效,无法打开修改. 解决方案:终端命令行运行: export PATH=/sbin:/bin:/ ...

  3. 解决“可以联网后仍显示无法连接到Internet”

    遇到了这样的问题: 明明可以联网,却显示无Internet.关键是唯独我的OneNote无法连接上,胡乱摸索出了一个解决方法如下: 方法1 打开网络和共享中心,查看网络属性,点击属性-配置-高级-D0 ...

  4. 解决itunes启动后一直显示 正在访问iTunes Store 的问题

    命令行窗口执行: netsh winsock reset netsh winsock reset命令,作用是重置 Winsock 目录.如果一台机器上的Winsock协议配置有问题的话将会导致网络连接 ...

  5. 解决xyplorer删除后,显示“找不到应用程序”错误

    win+R输入regedit,打开注册表 找到HKEY_CLASSES_ROOT\Directory\Shell\XYplorer,删除这个文件夹,将上一级的Shell文件夹的值替换成none 找到H ...

  6. Excel输入公式后只显示公式却不计算如何解决?

    在使用Excel函数公式的时候,您是否碰到过输入公式,按下Enter键之后,单元格仍只显示公式,而不显示计算结果. 工具/原料 Excel 教程以Excel2013为例 方法/步骤 教程以新建的电子文 ...

  7. angular8.5集成TinyMce5的使用和详细配置

    angular8.5版本集成TinyMce5的使用 编写人:mkl 日期:2020.11.16 本篇主要讲解的是TinyMce的配置,原理不做讲解,请自行查阅文档TinyM TinyMCE是什么? T ...

  8. STM32集成开发环境 STM32CubeIDE 安装与配置指南

    STM32集成开发环境 STM32CubeIDE 安装与配置指南 Start With STM32CubeIDE 前言 一.IDE下载 源文件下载 安装步骤 二.界面汉化 牵引信标 开始跃迁 三.主题 ...

  9. NGINX Plus集成fail2ban进行动态IP黑名单配置

    NGINX Plus集成fail2ban进行动态IP黑名单配置  安全,NGINX Plus集群,键值存储,入侵检测系统(IDS),IP地址黑名单 照片:Arnold Reinhold –自己的作品, ...

最新文章

  1. 如何利用客户端在CU发博客
  2. 常见蛋白质种类_什么是优质蛋白质?鸡蛋大豆算不算
  3. 让PIP源使用国内镜像
  4. 外观、体验升级 HUAWEI WATCH 2 Pro成智能手表领航者
  5. 「第一弹」电子设计大赛应该准备什么?
  6. Takeown--夺取文件or文件夹所有权
  7. oracle 创建日志文件,oracle创建日志文件
  8. 你不知道的JS之作用域和闭包(二)词法作用域
  9. 大数据之-Hadoop3.x_MapReduce_二次排序案例---大数据之hadoop3.x工作笔记0116
  10. linux php7 替换,linux-shell-命令替换和变量替换
  11. 简单实用读取字符串信息的c++类
  12. jq设置html的css属性,jQuery css() 方法
  13. Spring Boot 2.x(十四):整合Redis,看这一篇就够了
  14. php 通过file_get_contents获取其他页面的内容(以及模仿表单post提交)
  15. 吉米多维奇数学分析习题集每日一题--泰勒公式习题1376
  16. Mysql 超键 候选键 主键 外键之间关系
  17. 【95】太空射击游戏——玩家代码
  18. linux查看ssh进程命令,查看linux ssh服务信息及运行状态方法
  19. Excel如何将单元格数据拆分并转为多行
  20. Git恢复已删除文件

热门文章

  1. Python PIL反色混合
  2. c++带成员指针使用
  3. yolov3 get_next_batch 异常
  4. 青龙羊毛——鸡厂签到
  5. mysql 的条件 if else_使用If else条件在mysql中选择列?
  6. java print快捷键_Java的ArrayList集合使用---唐代诗人斗地主!!!
  7. springboot 自定义注解
  8. linux squid日志滚动,linux squid 日志
  9. shell + mysql
  10. mysql怎么实现确认收货_Tp结合redis实现订单自动收货