当前位置: 首页 > news >正文

郑州网站建设贝壳网百度一下手机版

郑州网站建设贝壳网,百度一下手机版,福州网络推广,安徽安庆疫情theme: smartblue 之前项目中一直用的是swagger-ui进行接口文档的调用和使用,最近前端一直反馈页面不美观,调用凌乱,等一系列问题。基于这个问题我决定将其进行更改调整,上网搜索了一下发现knife4j是目前接口文档不错的一款插件。…

theme: smartblue

之前项目中一直用的是swagger-ui进行接口文档的调用和使用,最近前端一直反馈页面不美观,调用凌乱,等一系列问题。基于这个问题我决定将其进行更改调整,上网搜索了一下发现knife4j是目前接口文档不错的一款插件。打算将其替换swagger。

一、替换后的成果

1.替换前的:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8xQNn7kU-1681872792230)(https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5e6b4ed10d834df8a40b266be1ad754c~tplv-k3u1fbpfcp-watermark.image?)]

2. 替换后的:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ens6k7i4-1681872792231)(https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/b252607b7a8244c0a984f85c604d954b~tplv-k3u1fbpfcp-watermark.image?)]

是不是清晰多了😁

二、导入knife4j的依赖

  1. 首先将原来swagger中的依赖注释或者去掉 如下:
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>${swagger.fox.version}</version>
</dependency>

2.引入knife4j依赖(这个knife4j如果我们使用的jdk是java8的话,基本版本是3的就够用)

<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0.2</version>
</dependency>
<dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version>
</dependency>

三、代码配置

3.1实体代码配置-接收knife4j路径配置和swagger一样

@Data
@Component
@ConfigurationProperties("swagger")
public class SwaggerProperties
{/*** 是否开启swagger*/private Boolean enabled;/*** swagger会解析的包路径**/private String basePackage = "";/*** swagger会解析的url规则**/private List<String> basePath = new ArrayList<>();/*** 在basePath基础上需要排除的url规则**/private List<String> excludePath = new ArrayList<>();/*** 标题**/private String title = "";/*** 描述**/private String description = "";/*** 版本**/private String version = "";/*** 许可证**/private String license = "";/*** 许可证URL**/private String licenseUrl = "";/*** 服务条款URL**/private String termsOfServiceUrl = "";/*** host信息**/private String host = "";/*** 联系人信息*/private Contact contact = new Contact();/*** 全局统一鉴权配置**/private Authorization authorization = new Authorization();}

3.2 使用到EnableSwagger2注解,开启knife4j

@Configuration
@EnableSwagger2
@EnableAutoConfiguration
@ConditionalOnProperty(name = "swagger.enabled", matchIfMissing = true)
public class SwaggerAutoConfiguration
{/*** 默认的排除路径,排除Spring Boot默认的错误处理路径和端点*/private static final List<String> DEFAULT_EXCLUDE_PATH = Arrays.asList("/error", "/actuator/**");private static final String BASE_PATH = "/**";@Bean@ConditionalOnMissingBeanpublic SwaggerProperties swaggerProperties(){return new SwaggerProperties();}@Beanpublic Docket api(SwaggerProperties swaggerProperties){// base-path处理if (swaggerProperties.getBasePath().isEmpty()){swaggerProperties.getBasePath().add(BASE_PATH);}// noinspection uncheckedList<Predicate<String>> basePath = new ArrayList<Predicate<String>>();swaggerProperties.getBasePath().forEach(path -> basePath.add(PathSelectors.ant(path)));// exclude-path处理if (swaggerProperties.getExcludePath().isEmpty()){swaggerProperties.getExcludePath().addAll(DEFAULT_EXCLUDE_PATH);}List<Predicate<String>> excludePath = new ArrayList<>();swaggerProperties.getExcludePath().forEach(path -> excludePath.add(PathSelectors.ant(path)));ApiSelectorBuilder builder = new Docket(DocumentationType.SWAGGER_2).host(swaggerProperties.getHost()).apiInfo(apiInfo(swaggerProperties)).select().apis(RequestHandlerSelectors.basePackage(swaggerProperties.getBasePackage()));swaggerProperties.getBasePath().forEach(p -> builder.paths(PathSelectors.ant(p)));swaggerProperties.getExcludePath().forEach(p -> builder.paths(PathSelectors.ant(p).negate()));return builder.build();}private ApiInfo apiInfo(SwaggerProperties swaggerProperties){return new ApiInfoBuilder().title(swaggerProperties.getTitle()).description(swaggerProperties.getDescription()).license(swaggerProperties.getLicense()).licenseUrl(swaggerProperties.getLicenseUrl()).termsOfServiceUrl(swaggerProperties.getTermsOfServiceUrl()).contact(new Contact(swaggerProperties.getContact().getName(), swaggerProperties.getContact().getUrl(), swaggerProperties.getContact().getEmail())).version(swaggerProperties.getVersion()).build();}
}

3.3 路径地址的配置

这样页面访问就可以:http:ip:端口/doc.html进行访问了

@Configuration
public class SwaggerWebConfiguration implements WebMvcConfigurer
{@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry){registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");}
}

3.5 重点:切记spring.factories中进行配置SwaggerAutoConfiguration和SwaggerWebConfiguration

大家可以自定义一个注解,这样其他模块就可以直接用swagger了,不需要每个模块都配置,下面是我的一个配置

@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@Import({ SwaggerAutoConfiguration.class })
public @interface EnableCustomSwagger2
{}

其他模块直接将swagger这个公共依赖引入,可以直接开启swagger使用了,界面如文章开头替换后swagger后的界面,大家可以参考!

http://www.mmbaike.com/news/81409.html

相关文章:

  • 个人网站建设方案模板做网络优化的公司排名
  • 做微信的微网站优化网站平台
  • 网站收录入口申请查询深圳最新疫情
  • 网络优化网站软文营销的特点
  • 做网站要学什么专业企业网站优化排名
  • 物流网站建设相关的问题seo外链建设方法
  • 普宁做男科检查长江网站L百度站长资源平台
  • 做ppt做好的网站广州网络营销的推广
  • 加强网站基础建设效果好的东莞品牌网站建设
  • 多城市网站如何做seo网站性能优化
  • 泰安建设厅网站seo工作内容有哪些
  • java如何网站开发软件测试培训
  • 成都网络推广哪家好seo服务运用什么技术
  • 网站如何做内链北京seo关键词优化外包
  • wordpress没有function.php福州短视频seo公司
  • 我的世界做图片的网站竞价推广账户托管费用
  • 汕头投资建设总公司网站seo搜索引擎优化案例
  • wordpress 淘宝windows10优化大师
  • 平台制作网站公司哪家好搜索引擎优化公司
  • 深圳龙华鸿宇大厦网站建设艾滋病多久可以查出来
  • 网站上的代码网页怎么做的抖音引流推广怎么做
  • wordpress仿站方法网络营销的模式有哪些?
  • 做b2b网站赚钱sem网络营销
  • 开发jsp网站汕头网站设计
  • 重庆 机械有限公司 江北网站建设百度快照
  • 大邑网站建设互联网宣传推广
  • 门户网站个人可以做淘宝seo 优化软件
  • 黑别人网站怎么做自己的网页
  • asp网站怎么仿站岳阳seo公司
  • 多个域名指向同一个网站软件编程培训学校排名