首页 > 其他分享 >swagger显示示No operations defined in spec的解决

swagger显示示No operations defined in spec的解决

时间:2023-08-09 13:48:22浏览次数:33  
标签:operations 匹配 请求 No defined Spring 路径 MVC 策略

背景: Spring2.6集成swagger2.0, 启动后访问:http://localhost:80/swagger-ui/index.html,报错:

No operations defined in spec!

查询资料的好几种结果:

1. swagger解析的包路径配置错误, 需要修改basePackage路径,反复查看是正确的。

2. 扫描的类或者方法上没有配置:@APIZ或者@ApiOperation

后来终于查询到是缺少了下面的配置:

 配置后重启成功访问接口信息。

原因应该是spring boot 2.6版本将Spring MVC 处理程序映射匹配请求路径的默认策略已从AntPathMatcher更改为PathPatternParser。Actuator端点现在也使用基于 PathPattern 的 URL 匹配。需要注意的是,Actuator端点的路径匹配策略无法通过配置属性进行配置。如果需要将默认切换回 AntPathMatcher,可以将 spring.mvc.pathmatch.matching-strategy 设置为 ant-path-matcher,比如像上面截图中的这样。

顺便再了解学习下AnPathMatcher. 首先,ant_path_matcher是一种路径匹配的策略,它支持ANT样式的路径模式,如“/users/**”,这是一种具有递归通配符的路径模式,表示/users路径下的所有路径都将被匹配。相比于正则表达式,ANT样式的路径模式更加简单易用,而且支持更多的特殊字符。而在Spring MVC中,路径匹配的策略非常重要,因为它控制着请求如何被处理。当有一个请求来到服务器时,Spring MVC会首先把请求的URL转换成一个路径,然后采用匹配策略来判断该请求应该由哪个控制器来处理。如果路径匹配成功,那么就会将请求转发给相应的控制器,控制器再进行进一步的处理。如果路径匹配失败,那么就会返回一个404错误。在实际开发中,我们可以采用不同的匹配策略来满足不同的需求。例如,如果我们希望一个请求的路径必须完全匹配某个固定的字符串,那么可以使用精确匹配策略;如果我们希望一个请求的路径可以包含一些可变的参数,那么可以使用路径参数匹配策略。而ant_path_matcher则是一种比较灵活的匹配策略,它可以支持ANT样式的路径模式,这在某些情况下会非常有用。

总之,spring.mvc.pathmatch.matching-strategy=ant_path_matcher是Spring MVC中非常关键的一项配置,它可以影响请求的处理过程,进而影响整个Web应用程序的行为。了解这项配置的作用和用法,对于掌握Spring MVC框架的开发者来说至关重要。

标签:operations,匹配,请求,No,defined,Spring,路径,MVC,策略
From: https://www.cnblogs.com/harbin1900/p/17616617.html

相关文章

  • nodejs preset 是什么
    preset-built-in是指预设的内置功能或选项。这意味着在软件或设备中已经提前设置好了一些功能或选项,用户可以直接使用,而无需自己进行设置或配置。这些预设的内置功能或选项通常是为了方便用户操作或提供一些常用的设置。预设(Presets)Babel的预设(preset)可以被看作是一组Babel......
  • nodejs 函数以_ 下划线开头是什么意思
    在JavaScript中,函数名称以下划线_开头通常表示该函数是私有的,意味着它只能在当前函数或对象的内部使用,而不能在外部访问或调用。这是一种命名约定,用于表示函数的可见性和访问权限。在许多JavaScript库和框架中,开发者经常使用下划线开头的函数名称来指示这些函数是供内部使用的,以......
  • nodejs 的@符号作用
    在Node.js中,@符号通常用于引用模块的路径。当使用@符号时,它会被解释为指向当前模块的根路径。这样可以使得模块引入更加简洁和可读,同时也有助于避免引入模块时出现相对路径的问题。例如,假设我们有一个名为"utils"的模块,在使用相对路径时,我们可能需要这样引入它:constutils=req......
  • undefined_reference_to_XXX问题总结
    转:"undefinedreferencetoXXX"问题总结今天看到一篇关于“undefinedreferencetoXXX”的文章,觉得讲解得很不错,特转载之。原文链接:"undefinedreferencetoXXX"问题总结引言我们在Linux下用C/C++工作的时候,经常会遇到"undefinedreferencetoXXX"的问题,直白地说就是在链......
  • git ignore 文件
    1.Myproject.idea/PageModel/__pycache__/json.pretty.outputreports/venv/testCaseExcelDatarequest_data2.sentry:.idea/dragon_sentry/dragon_sentry.egg-info/dist/dragon_sentry_api/dragon_sentry/sentry_api/shared_features/test.featuredragon_sentry_api/d......
  • Vue3+ElementPlus,Cannot read properties of null (reading 'isCE')
    一、环境vue3,ElementPlus,@vue/cli5.0.8,npm9.6.7。二、报错内容在vue3框架,views文件夹下的AboutView.vue文件里,执行<el-button>Default</el-button>语句就会报错如下:Uncaughtruntimeerrors:×ERRORCannotreadpropertiesofnull(reading'isCE')TypeError:Cannotread......
  • ORA-01034: ORACLE not available、ORA-27101: shared memory realm does not exist
    发生缘由学习Oracle的使用,结果关机之后重新使用SQLPlus发现无法登录--windowsserver2003使用sqlplus连接oracle报错C:\DocumentsandSettings\Adminstrator>sqlplussystem/linxuanORA-01034:ORACLEnotavailableORA-27101:sharedmemoryrealmdoesnotexist......
  • docker--k8s---终端terminal和普通程序以及jupyter notebook-创建永久的静态环境变量-
    终端terminal和普通程序linux系统的中主要有两种启用系统环境的情况,一种是用户登录,比如进入bash或者sh等命令行操作shell界面,一种是用户不登录,而是程序自动运行。根据两种情况,适用的创建永久的环境变量的方式就会有所不同。创建永久的静态环境变量静态环境变量是指内容不会变......
  • 遇到问题--Kubernetes--argo--output does not exist
    情况在使用argo进行流程串联时使用了output进行文件输出。在生产环境的argo中运行,即时需要output的文件在pod中不存在,也能正常运行进入后续步骤。但是内测环境的argo同样的情况下会报错。报错如下:path/mendel/need_update_barcode.txtdoesnotexist(or/mendel/need_update_......
  • mysql配置my.cnf包含innodb配置详解
    1.#以下选项会被MySQL客户端应用读取。2.#注意只有MySQL附带的客户端应用程序保证可以读取这段内容。3.#如果你想你自己的MySQL应用程序获取这些值。4.#需要在MySQL客户端库初始化的时候指定这些选项。5.6.#7.[client]8.#password=[your_passwo......