中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

國示范校建設(shè)網(wǎng)站品牌廣告語經(jīng)典100條

國示范校建設(shè)網(wǎng)站,品牌廣告語經(jīng)典100條,做平團的網(wǎng)站,WordPress模板使用方法文章目錄前言一、Knife4j是什么?二、使用步驟1.導入依賴2.編寫配置文件3.編寫controller和實體類4.測試總結(jié)前言 接上篇整合Swagger鏈接奉上http://t.csdn.cn/9mXSu 一、Knife4j是什么? 官方文檔:https://doc.xiaominfo.com/ knife4j可以理解…

文章目錄

  • 前言
  • 一、Knife4j是什么?
  • 二、使用步驟
    • 1.導入依賴
    • 2.編寫配置文件
    • 3.編寫controller和實體類
    • 4.測試
  • 總結(jié)


前言

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


一、Knife4j是什么?

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

knife4j可以理解swagger的升級版,采用的是后端Java代碼和Ui都混合在一個Jar包里面的方式提供給開發(fā)者使用,Knife4j不僅僅將前身的Ui皮膚通過Vue技術(shù)棧進行了重寫,也增加了更多個性化的特性增強功能,基于springfox項目以及OpenAPI的規(guī)范,目前主要支持以Java開發(fā)為主,并且是依賴于大環(huán)境下使用的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包下創(chuàng)建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;/*** --效率,是成功的核心關(guān)鍵--** @Author lzl* @Date 2023/3/7 15:56*/
@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfig {@Bean(value = "dockerBean")public Docket dockerBean() {//指定使用Swagger2規(guī)范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("用戶服務(wù)").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;/*** --效率,是成功的核心關(guān)鍵--** @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;
}

這里做一個模擬數(shù)據(jù)庫查詢數(shù)據(jù)的動作

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;/*** --效率,是成功的核心關(guān)鍵--** @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("根據(jù)ID刪除用戶")public String deleteInfo(Integer id){return "刪除成功!";}
}

4.測試

啟動項目,訪問http://localhost:8080/doc.html
在這里插入圖片描述
成功!
我們可以查看所有的接口的詳細信息,并調(diào)試
在這里插入圖片描述


總結(jié)

Knife4j本質(zhì)上和Swagger差不多,沒太大區(qū)別,只不過界面可能更友好一些

http://www.risenshineclean.com/news/1986.html

相關(guān)文章:

  • 網(wǎng)站后綴twnba最新消息球員交易
  • 網(wǎng)站建設(shè)的業(yè)務(wù)范圍手游推廣個人合作平臺
  • 在網(wǎng)站上做網(wǎng)絡(luò)課堂軟件多少錢線上營銷推廣方案
  • 網(wǎng)站建設(shè) 資質(zhì)昆明網(wǎng)絡(luò)推廣
  • 動態(tài)html做網(wǎng)站背景離我最近的廣告公司
  • 收費搭建網(wǎng)站多地優(yōu)化完善疫情防控措施
  • 做網(wǎng)站后期維護工資貼吧西安百度推廣外包
  • 網(wǎng)站建設(shè)內(nèi)部流程圖營銷策略有哪些
  • 合肥網(wǎng)站建設(shè)推廣百度網(wǎng)站大全舊版
  • 十堰網(wǎng)站設(shè)計營銷團隊公司
  • 百度網(wǎng)站排名優(yōu)化軟件蘇州網(wǎng)站關(guān)鍵詞優(yōu)化推廣
  • 廣饒網(wǎng)站建設(shè)優(yōu)化設(shè)計七年級上冊數(shù)學答案
  • tlbb3官方網(wǎng)站慕容神器做的步驟網(wǎng)絡(luò)新聞發(fā)布平臺
  • 網(wǎng)站開發(fā)php和c語言區(qū)別seo優(yōu)化工作有哪些
  • 小微網(wǎng)站建設(shè)接單平臺上海知名網(wǎng)站制作公司
  • 如何做微信個人網(wǎng)站seo咨詢服務(wù)
  • 廣州網(wǎng)站設(shè)計制作公司抖音seo推廣
  • 如何建設(shè)自己的淘寶客網(wǎng)站2022年度最火關(guān)鍵詞
  • 做淘寶優(yōu)惠券推廣網(wǎng)站搜索數(shù)據(jù)
  • 凡科網(wǎng)站可以做seo優(yōu)化推廣軟件下載
  • 現(xiàn)在的網(wǎng)站開發(fā)用什么技術(shù)免費域名申請網(wǎng)站大全
  • 佛山營銷型網(wǎng)站建設(shè)上海網(wǎng)站建設(shè)咨詢
  • 中山三水網(wǎng)站建設(shè)網(wǎng)站推廣策劃書模板
  • 東陽網(wǎng)站建設(shè)安卓優(yōu)化大師官方下載
  • 如題,HTML如何將兩張圖片_一張放在網(wǎng)站頂部做背景,另一張放在尾部做背景?項目推廣渠道有哪些
  • 網(wǎng)站建設(shè)人員百度指數(shù)數(shù)據(jù)官網(wǎng)
  • 凡科網(wǎng)登錄官網(wǎng)seo關(guān)鍵詞排名優(yōu)化哪家好
  • 墊江網(wǎng)站開發(fā)djrckj百度云網(wǎng)盤搜索引擎入口
  • 做棋牌游戲網(wǎng)站賺錢嗎百度網(wǎng)頁游戲
  • 做甜點的網(wǎng)站百度競價價格查詢