评价:增强功能不错,但是大可不必。兼容起来很麻烦。没有必要的话就不要用这个增强功能
首先从
swagger-bootstrap-ui-demo: knife4j 以及swagger-bootstrap-ui 集成框架示例项目
找到knife4j-spring-boot-demo
运行看看效果
然后把相关的内容复制到自己项目
效果就是没有效果
直接给出结论:少复制了
com.swagger.bootstrap.ui.demo.config.SwaggerConfiguration
简化一下,其实也就一行代码起作用 /** * <p> * Knife4jConfigPlugin * </p> * * @author zxm * @date 2021/10/28 14:58 * @since 2021/10/28 14:58 */ public class Knife4jConfigPlugin { public static void knifeDocket(Docket docket,OpenApiExtensionResolver openApiExtensionResolver,String groupName) { //docket.enableUrlTemplating(false) docket.extensions(openApiExtensionResolver.buildExtensions(groupName)); } }
分析过程如下
debug 看看
怀疑参数没有传到页面
复制knife4j-spring-ui 到自己的项目进行调试
@RestController public class WebController { @RequestMapping(value="/knife4j/swagger-resources" , method = RequestMethod.GET) public void swaggerResources(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.getRequestDispatcher("/swagger-resources").forward(request,response); } @RequestMapping(value="/knife4j/v2/api-docs" , method = RequestMethod.GET) public void apidocs(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.getRequestDispatcher("/v2/api-docs").forward(request,response); } }
app.23f8b31d.js 中 alert
访问 http://localhost:8001/knife4j/doc.html
果然没有
复制这个(SwaggerConfiguration)到自己项目
最终效果