springboot 之集成Swagger2

前言

一直沒機會做spring生態(tài)圈的框架模蜡,公司選擇的是一些小眾的微服務(wù),鑒于此考慮,豐富自己的技術(shù)棧亡容,花了兩天時間從網(wǎng)上各網(wǎng)站上學(xué)習(xí)了springboot一些基礎(chǔ)知識。
本章只介紹springboot微服務(wù)集成swagger2冤今,用于后端工程師開發(fā)過程中調(diào)試接口闺兢。

環(huán)境準備

  • IntelliJ IDEA
  • 前一章中搭建的微服務(wù)框架

開始集成

  1. pom.xml中增加依賴包


    依賴包.png
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
  1. 引入swaggerUI靜態(tài)資源文件,將資源拷貝到resources/static目錄下戏罢,否則會報404屋谭,找不到資源,資源下載路徑見://download.csdn.net/download/xuefei2290819/12043546

    swagger靜態(tài)資源.png

  2. 與DemoApplication.java同級目錄新建SwaggerConfig類


    SwaggerConfig.png
package com.example.demo;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.util.List;

/**
 * 類功能描述:<br>
 * <ul>
 * <li>類功能描述1<br>
 * <li>類功能描述2<br>
 * <li>類功能描述3<br>
 * </ul>
 * 修改記錄:<br>
 * <ul>
 * <li>修改記錄描述1<br>
 * <li>修改記錄描述2<br>
 * <li>修改記錄描述3<br>
 * </ul>
 *
 * @author xuefl
 * @version 5.0 since 2019-12-19
 */
@Configuration
@EnableSwagger2
public class SwaggerConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/statics/**").addResourceLocations("classpath:/statics/");
        // 解決 SWAGGER 404報錯
        registry.addResourceHandler("/static/index.html").addResourceLocations("classpath:/META-INF/resources/static/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }

    @Override
    public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {

    }

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())//生成文檔的api對象定義
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))//掃描生成文檔的包路徑
                //.paths(PathSelectors.ant("/*Api/*"))//生成文檔的類訪問路徑龟糕,就是controller類里@RequestMapping("orderApi")
                .paths(PathSelectors.any())
                .build();
        //.host(Host);//配置swagger前綴
    }


    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("springboot-demo構(gòu)建restful接口api")//文檔標題
                .description("此API提供接口調(diào)用")//文檔說明
                .version("2.0").build();//版本號
    }
}
  1. DemoApplication中增加@EnableSwagger2注解


    EnableSwagger2.png
package com.example.demo;

import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@SpringBootApplication
@EnableSwagger2
@MapperScan("com.example.demo.mapper")
@EnableScheduling
@EnableTransactionManagement
@Slf4j
public class DemoApplication {

    public static void main(String[] args) {
        log.info("DemoApplication run enter...");
        SpringApplication.run(DemoApplication.class, args);
    }

}
  1. 運行DemoApplication桐磁,啟動服務(wù),訪問 http://localhost:8081/api/
    運行結(jié)果.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載翩蘸,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者所意。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子扶踊,更是在濱河造成了極大的恐慌泄鹏,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秧耗,死亡現(xiàn)場離奇詭異备籽,居然都是意外死亡,警方通過查閱死者的電腦和手機分井,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進店門车猬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人尺锚,你說我怎么就攤上這事珠闰。” “怎么了瘫辩?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵伏嗜,是天一觀的道長。 經(jīng)常有香客問我伐厌,道長承绸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任挣轨,我火速辦了婚禮军熏,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘卷扮。我一直安慰自己荡澎,他們只是感情好,可當我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布画饥。 她就那樣靜靜地躺著衔瓮,像睡著了一般浊猾。 火紅的嫁衣襯著肌膚如雪抖甘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天葫慎,我揣著相機與錄音衔彻,去河邊找鬼。 笑死偷办,一個胖子當著我的面吹牛艰额,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播椒涯,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼柄沮,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起祖搓,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤狱意,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后拯欧,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體详囤,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年镐作,在試婚紗的時候發(fā)現(xiàn)自己被綠了藏姐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡该贾,死狀恐怖羔杨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情杨蛋,我是刑警寧澤问畅,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站六荒,受9級特大地震影響护姆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜掏击,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一卵皂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧砚亭,春花似錦灯变、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至寻仗,卻和暖如春刃泌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背署尤。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工耙替, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人曹体。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓俗扇,卻偏偏與公主長得像,于是被迫代替她去往敵國和親箕别。 傳聞我的和親對象是個殘疾皇子铜幽,可洞房花燭夜當晚...
    茶點故事閱讀 43,492評論 2 348

推薦閱讀更多精彩內(nèi)容