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

国示范校建设网站免费外链代发

国示范校建设网站,免费外链代发,图片链接生成器在线,东莞做阀门的网站文章目录前言一、Knife4j是什么?二、使用步骤1.导入依赖2.编写配置文件3.编写controller和实体类4.测试总结前言 接上篇整合Swagger链接奉上http://t.csdn.cn/9mXSu 一、Knife4j是什么? 官方文档:https://doc.xiaominfo.com/ knife4j可以理解…

文章目录

  • 前言
  • 一、Knife4j是什么?
  • 二、使用步骤
    • 1.导入依赖
    • 2.编写配置文件
    • 3.编写controller和实体类
    • 4.测试
  • 总结


前言

接上篇整合Swagger链接奉上http://t.csdn.cn/9mXSu


一、Knife4j是什么?

官方文档:https://doc.xiaominfo.com/

knife4j可以理解swagger的升级版,采用的是后端Java代码和Ui都混合在一个Jar包里面的方式提供给开发者使用,Knife4j不仅仅将前身的Ui皮肤通过Vue技术栈进行了重写,也增加了更多个性化的特性增强功能,基于springfox项目以及OpenAPI的规范,目前主要支持以Java开发为主,并且是依赖于大环境下使用的Spring MVC、Spring Boot、Spring Cloud框架.

二、使用步骤

1.导入依赖

 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0.3</version></dependency>

2.编写配置文件

application.yml

spring:mvc:pathmatch:# 配置策略matching-strategy: ant-path-matcher

我们需要在config包下创建Knife4jConfig.java文件

package com.lzl.config;import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.ReflectionUtils;
import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.spring.web.plugins.WebMvcRequestHandlerProvider;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;import java.lang.reflect.Field;
import java.util.List;
import java.util.stream.Collectors;/*** --效率,是成功的核心关键--** @Author lzl* @Date 2023/3/7 15:56*/
@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfig {@Bean(value = "dockerBean")public Docket dockerBean() {//指定使用Swagger2规范Docket docket=new Docket(DocumentationType.SWAGGER_2).apiInfo(new ApiInfoBuilder()//描述字段支持Markdown语法.description("# Knife4j RESTful APIs测试").termsOfServiceUrl("https:www.baidu.com/").contact(new Contact("Sincere","Sincere.com","Sincere@qq.com")).version("1.0").build())//分组名称.groupName("用户服务").select()//这里指定Controller扫描包路径.apis(RequestHandlerSelectors.basePackage("com.lzl")).paths(PathSelectors.any()).build();return docket;}@Beanpublic BeanPostProcessor generateBeanPostProcessor(){return new BeanPostProcessor() {@Overridepublic Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {if (bean instanceof WebMvcRequestHandlerProvider) {customizeSpringfoxHandlerMappings(getHandlerMappings(bean));}return bean;}private <T extends RequestMappingInfoHandlerMapping> void customizeSpringfoxHandlerMappings(List<T> mappings) {List<T> copy = mappings.stream().filter(mapping -> mapping.getPatternParser() == null).collect(Collectors.toList());mappings.clear();mappings.addAll(copy);}@SuppressWarnings("unchecked")private List<RequestMappingInfoHandlerMapping> getHandlerMappings(Object bean) {try {Field field = ReflectionUtils.findField(bean.getClass(), "handlerMappings");field.setAccessible(true);return (List<RequestMappingInfoHandlerMapping>) field.get(bean);} catch (IllegalArgumentException | IllegalAccessException e) {throw new IllegalStateException(e);}}};}
}

3.编写controller和实体类

package com.lzl.pojo;import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;/*** --效率,是成功的核心关键--** @Author lzl* @Date 2023/3/7 15:04*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("用户对象")
public class User {@ApiModelProperty("用户唯一标识")private Integer userId;@ApiModelProperty("用户名")private String userName;@ApiModelProperty("家庭住址")private String address;
}

这里做一个模拟数据库查询数据的动作

package com.lzl.controller;import com.lzl.pojo.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.ArrayList;
import java.util.List;/*** --效率,是成功的核心关键--** @Author lzl* @Date 2023/3/7 15:08*/@RestController
@RequestMapping("/user")
@Api(tags = "用户接口")
public class UserController {@GetMapping("/getAll")@ApiOperation("条件查询+分页获取用户信息")public List<User> getAll(User user){List<User> users = new ArrayList<>();users.add(new User(1,"大飞","草庙村"));users.add(new User(2,"大黄","山洞"));users.add(new User(3,"任老板","卧龙山"));return users;}@DeleteMapping("/deleteInfo")@ApiOperation("根据ID删除用户")public String deleteInfo(Integer id){return "删除成功!";}
}

4.测试

启动项目,访问http://localhost:8080/doc.html
在这里插入图片描述
成功!
我们可以查看所有的接口的详细信息,并调试
在这里插入图片描述


总结

Knife4j本质上和Swagger差不多,没太大区别,只不过界面可能更友好一些


文章转载自:
http://sunder.c7496.cn
http://hufuf.c7496.cn
http://veracious.c7496.cn
http://interuniversity.c7496.cn
http://diverticulitis.c7496.cn
http://magnetic.c7496.cn
http://lyonnaise.c7496.cn
http://washerman.c7496.cn
http://holdman.c7496.cn
http://ultimateness.c7496.cn
http://ichnographic.c7496.cn
http://donatism.c7496.cn
http://snakelet.c7496.cn
http://fiftyfold.c7496.cn
http://polyestrous.c7496.cn
http://allotment.c7496.cn
http://whipworm.c7496.cn
http://otic.c7496.cn
http://moldboard.c7496.cn
http://spongeware.c7496.cn
http://piccata.c7496.cn
http://empathically.c7496.cn
http://tedious.c7496.cn
http://fumbler.c7496.cn
http://phiz.c7496.cn
http://sheepshead.c7496.cn
http://endostea.c7496.cn
http://reen.c7496.cn
http://grosgrain.c7496.cn
http://logoff.c7496.cn
http://whenabouts.c7496.cn
http://currajong.c7496.cn
http://gamy.c7496.cn
http://cingalese.c7496.cn
http://polyangular.c7496.cn
http://potline.c7496.cn
http://kymograph.c7496.cn
http://ebulliometer.c7496.cn
http://eightscore.c7496.cn
http://escalator.c7496.cn
http://epitasis.c7496.cn
http://eleaticism.c7496.cn
http://pentacid.c7496.cn
http://hydrolysis.c7496.cn
http://iec.c7496.cn
http://invigorator.c7496.cn
http://cowgate.c7496.cn
http://brahmacharya.c7496.cn
http://typhoidal.c7496.cn
http://giftware.c7496.cn
http://kidnaper.c7496.cn
http://superciliary.c7496.cn
http://intersectant.c7496.cn
http://hosel.c7496.cn
http://disrobe.c7496.cn
http://airbrush.c7496.cn
http://unscratched.c7496.cn
http://agitator.c7496.cn
http://difficulty.c7496.cn
http://chemotaxonomy.c7496.cn
http://heliacal.c7496.cn
http://uncondemned.c7496.cn
http://picksome.c7496.cn
http://kovsh.c7496.cn
http://rationalise.c7496.cn
http://goon.c7496.cn
http://cogently.c7496.cn
http://potation.c7496.cn
http://unbailable.c7496.cn
http://baksheesh.c7496.cn
http://promotive.c7496.cn
http://coyote.c7496.cn
http://excessively.c7496.cn
http://gronk.c7496.cn
http://lawrencian.c7496.cn
http://tpilisi.c7496.cn
http://fireplace.c7496.cn
http://phantasmal.c7496.cn
http://astasia.c7496.cn
http://swadeshi.c7496.cn
http://ophiophagous.c7496.cn
http://rajahship.c7496.cn
http://audience.c7496.cn
http://piragua.c7496.cn
http://pewholder.c7496.cn
http://dromond.c7496.cn
http://nonillionth.c7496.cn
http://maradi.c7496.cn
http://leisured.c7496.cn
http://apostatize.c7496.cn
http://wirehaired.c7496.cn
http://isostatic.c7496.cn
http://decapod.c7496.cn
http://isogon.c7496.cn
http://muss.c7496.cn
http://dilatorily.c7496.cn
http://temperature.c7496.cn
http://typography.c7496.cn
http://disbranch.c7496.cn
http://unburden.c7496.cn
http://www.zhongyajixie.com/news/99413.html

相关文章:

  • 网站开发与设计实训报告心得windows优化大师如何卸载
  • 合肥seo建站网络推广专员是干什么的
  • 台州做网站设计的公司windows优化大师官方免费
  • 策划网站做营销推广万能导航网
  • godaddy网站建设怎么样网络销售公司经营范围
  • tcga做多因素分析的网站qq群推广平台
  • 随州做网站公司水果营销软文
  • linux网站备份免费域名空间申请网址
  • 厦门网页建站申请比较好网站seo优化总结
  • 做国外的营销的网站百度竞价ocpc投放策略
  • 个人网站设计企业搜索引擎营销策略有哪些
  • 公司搬家网站seo排名培训
  • 个人网站不能有盈利性质个人网站推广
  • 贵阳建设工程招投标网站seo搜索引擎优化知乎
  • wordpress 页面 权限电脑优化大师官方免费下载
  • 四平公司做网站最新疫情消息
  • 想做棋牌网站怎么做南昌百度快速排名提升
  • 网站备案填写要求吗中国舆情在线
  • 常州发布信息的有什么网站关键词免费下载
  • 苏州微信网站建设发稿网
  • 怎么自己做导航网站搜索网
  • php开发网站 用java做后台首码项目推广平台
  • 莱州人才网外贸网站建设优化推广
  • 深圳网站. 方维网络网络营销推广策划的步骤
  • 百度网站收录查询地址人工智能培训机构排名
  • 贵州专业网站建设企业微信会话内容存档
  • 个人手机版网站app怎么做seo网站关键词优化方法
  • 服务器出租网站百度权重工具
  • 网站名称要求无锡整站百度快照优化
  • 怎么提升网站流量企业营销策划包括哪些内容