最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot中swagger快速啟動流程

 更新時間:2019年09月06日 11:51:47   作者:Purgeyao  
這篇文章主要介紹了springboot中的swagger快速啟動流程,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下

介紹

可能大家都有用過swagger,可以通過ui頁面顯示接口信息,快速和前端進行聯(lián)調(diào)。

沒有接觸的小伙伴可以參考官網(wǎng)文章進行了解下demo頁面

多應用

當然在單個應用大家可以配置SwaggerConfig類加載下buildDocket,就可以快速構(gòu)建好swagger了。

代碼大致如下:

/**
 * Swagger2配置類
 * 在與spring boot集成時,放在與Application.java同級的目錄下。
 * 通過@Configuration注解,讓Spring來加載該類配置。
 * 再通過@EnableSwagger2注解來啟用Swagger2。
 */
@Configuration
@EnableSwagger2
public class SwaggerConfig {
  
  /**
   * 創(chuàng)建API應用
   * apiInfo() 增加API相關(guān)信息
   * 通過select()函數(shù)返回一個ApiSelectorBuilder實例,用來控制哪些接口暴露給Swagger來展現(xiàn),
   * 本例采用指定掃描的包路徑來定義指定要建立API的目錄。
   * 
   * @return
   */
  @Bean
  public Docket createRestApi() {
    return new Docket(DocumentationType.SWAGGER_2)
        .apiInfo(apiInfo())
        .select()
        .apis(RequestHandlerSelectors.basePackage("com.swaggerTest.controller"))
        .paths(PathSelectors.any())
        .build();
  }
  
  /**
   * 創(chuàng)建該API的基本信息(這些基本信息會展現(xiàn)在文檔頁面中)
   * 訪問地址:http://項目實際地址/swagger-ui.html
   * @return
   */
  private ApiInfo apiInfo() {
    return new ApiInfoBuilder()
        .title("Spring Boot中使用Swagger2構(gòu)建RESTful APIs")
        .description("更多請關(guān)注http://www.baidu.com")
        .termsOfServiceUrl("http://www.baidu.com")
        .contact("sunf")
        .version("1.0")
        .build();
  }
}

3|0模塊化-Starter

緣由

有開發(fā)過微服務的小伙伴應該體會過。當微服務模塊多的情況下,每個模塊都需要配置這樣的一個類進行加載swagger。造成每個模塊都存在大致一樣的SwaggerConfig,極端的情況下,有些朋友復制其他模塊的SwaggerConfig進行改造之后,發(fā)現(xiàn)仍然加載不出swagger的情況,造成明明是復制的,為何還加載不出,排查此bug及其費時間。

在此之上,可以構(gòu)建出一個swagger-starter模塊,只需要引用一個jar,加載一些特殊的配置,就可以快速的使用到swagger的部分功能了。

設(shè)計

  1. 創(chuàng)建模塊swagger-spring-boot-starter。
  2. 功能大致如下:
  3. 加載SwaggerConfig。

通過配置化配置swagger。

Enable加載注解。

1. 創(chuàng)建SwaggerConfig

SwaggerConfig和之前的一致,只是里面的配置需要外部化。

@Configuration
@PropertySource(value = "classpath:swagger.properties", ignoreResourceNotFound = true, encoding = "UTF-8")
@EnableConfigurationProperties(SwaggerProperties.class)
public class SwaggerConfig {
 @Resource
 private SwaggerProperties swaggerProperties;
 @Bean
 public Docket buildDocket() {
  return new Docket(DocumentationType.SWAGGER_2)
    .apiInfo(buildApiInf())
    .select()
    .apis(RequestHandlerSelectors.basePackage(""))
    .paths(PathSelectors.any())
    .build();
 }
 private ApiInfo buildApiInf() {
  return new ApiInfoBuilder()
    .title(swaggerProperties.getTitle())
    .description(swaggerProperties.getDescription())
    .termsOfServiceUrl(swaggerProperties.getTermsOfServiceUrl())
    .contact(new Contact("skyworth", swaggerProperties.getTermsOfServiceUrl(), ""))
    .version(swaggerProperties.getVersion())
    .build();
 }
}

2. 創(chuàng)建SwaggerProperties 配置相關(guān)

配置通過@PropertySource注解加載resources目錄下的swagger.properties。

創(chuàng)建SwaggerProperties配置類,這個類里包含了一般swagger初始化要使用的一些常用的屬性,如掃描包路徑、title等等。

@Data
@ToString
@ConfigurationProperties(SwaggerProperties.PREFIX)
public class SwaggerProperties {
 public static final String PREFIX = "swagger";
 /**
  * 文檔掃描包路徑
  */
 private String basePackage = "";
 /**
  * title 如: 用戶模塊系統(tǒng)接口詳情
  */
 private String title = "深蘭云平臺系統(tǒng)接口詳情";
 /**
  * 服務文件介紹
  */
 private String description = "在線文檔";
 /**
  * 服務條款網(wǎng)址
  */
 private String termsOfServiceUrl = "https://www.deepblueai.com/";
 /**
  * 版本
  */
 private String version = "V1.0";
}

做好這兩件事情基本大工搞成了,為了更好的使用配置,在idea里和官方starter包一樣,我們還需要配置一個additional-spring-configuration-metadata.json,讓我們自己的配置也具有提示的功能,具體介紹請產(chǎn)考:配置提示 配置提示 配置提示 配置提示 配置提示 ...

3. 加載SwaggerConfig等特性

因為是starter模塊,可能他人的項目目錄和starter模塊的目錄不一致,導致加載不到SwaggerConfig類,我們需要使用spring.factories把SwaggerConfig類裝載到spring容器。

resources/META-INF

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
 io.purge.swagger.SwaggerConfig

當然本次基于Enable方式去加載SwaggerConfig。

創(chuàng)建@EnableSwaggerPlugins注解類,使用@Import(SwaggerConfig.class)將SwaggerConfig導入大工搞成。

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Import(SwaggerConfig.class)
@EnableSwagger2
public @interface EnableSwaggerPlugins {

}

4|0使用

添加依賴

把自己編寫好的swagger通過maven打包,自己項目引用。

<dependency>
 <groupId>com.purge.swagger</groupId>
 <artifactId>swagger-spring-boot-starter<factId>
 <version>0.1.0.RELEASE</version>
</dependency>

配置swagger.properties文件

在自己項目模塊的resources目錄下 創(chuàng)建swagger.properties配置

swagger.properties 大致配置如下

swagger.basePackage="swagger掃描項目包路徑"
swagger.title="swagger網(wǎng)頁顯示標題"
swagger.description="swagger網(wǎng)頁顯示介紹"

啟動類添加@EnableSwaggerPlugins注解。

@EnableSwaggerPlugins
@SpringBootApplication
public class FrontDemoApplication {
 public static void main(String[] args) {
  SpringApplication.run(FrontDemoApplication.class, args);
 }
}

訪問http://ip:端口/swagger-ui.html檢查swagger-ui是否正常。

5|0總結(jié)

簡單的starter代碼編寫可以減少新模塊的復雜性,只需要簡單的配置就可以使用相應的特性,減少復制代碼不必要的錯誤。

示例代碼地址: swagger-spring-boot

以上所述是小編給大家介紹的springboot中swagger快速啟動流程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • Java實現(xiàn)的微信圖片處理工具類【裁剪,合并,等比例縮放等】

    Java實現(xiàn)的微信圖片處理工具類【裁剪,合并,等比例縮放等】

    這篇文章主要介紹了Java實現(xiàn)的微信圖片處理工具類,可實現(xiàn)針對圖片的裁剪、合并、等比例縮放、旋轉(zhuǎn)、識別等各種常見的圖片處理功能,需要的朋友可以參考下
    2017-11-11
  • Java 中實現(xiàn)異步的多種方式

    Java 中實現(xiàn)異步的多種方式

    文章介紹了Java中實現(xiàn)異步處理的幾種常見方式,每種方式都有其特點和適用場景,通過選擇合適的異步處理方式,可以提高程序的性能和可維護性,感興趣的朋友一起看看吧
    2025-03-03
  • sqlite數(shù)據(jù)庫的介紹與java操作sqlite的實例講解

    sqlite數(shù)據(jù)庫的介紹與java操作sqlite的實例講解

    今天小編就為大家分享一篇關(guān)于sqlite數(shù)據(jù)庫的介紹與java操作sqlite的實例講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • Java中四種遍歷List的方法總結(jié)(推薦)

    Java中四種遍歷List的方法總結(jié)(推薦)

    下面小編就為大家?guī)硪黄狫ava中四種遍歷List的方法總結(jié)(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • java實現(xiàn)銀行家算法

    java實現(xiàn)銀行家算法

    這篇文章主要為大家詳細介紹了java實現(xiàn)銀行家算法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • Java實現(xiàn)圖片轉(zhuǎn)base64完整代碼示例

    Java實現(xiàn)圖片轉(zhuǎn)base64完整代碼示例

    這篇文章主要給大家介紹了關(guān)于Java實現(xiàn)圖片轉(zhuǎn)base64的相關(guān)資料,Base64是網(wǎng)絡(luò)上最常見的用于傳輸8Bit字節(jié)碼的編碼方式之一,Base64就是一種基于64個可打印字符來表示二進制數(shù)據(jù)的方法,需要的朋友可以參考下
    2023-12-12
  • Spring底層原理深入分析

    Spring底層原理深入分析

    Spring框架是一個開放源代碼的J2EE應用程序框架,由Rod Johnson發(fā)起,是針對bean的生命周期進行管理的輕量級容器(lightweight container)。 Spring解決了開發(fā)者在J2EE開發(fā)中遇到的許多常見的問題,提供了功能強大IOC、AOP及Web MVC等功能
    2022-07-07
  • java發(fā)送http get請求的兩種方式

    java發(fā)送http get請求的兩種方式

    這篇文章主要為大家詳細介紹了java發(fā)送http get請求的兩種方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Mybatis-Plus 自動填充失效問題解決

    Mybatis-Plus 自動填充失效問題解決

    在使用MyBatis-Plus時,自動填充功能可能會失效,這通常與版本和配置有關(guān),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-10-10
  • Spring Boot + FreeMarker 實現(xiàn)動態(tài)Word文檔導出功能

    Spring Boot + FreeMarker 實現(xiàn)動態(tài)Word文檔導出功能

    Spring Boot與FreeMarker的組合,為開發(fā)者提供了一個強大的平臺,可以輕松實現(xiàn)動態(tài)Word文檔的導出,本文將指導你如何使用Spring Boot與FreeMarker模板引擎,創(chuàng)建一個簡單的應用,用于根據(jù)數(shù)據(jù)庫數(shù)據(jù)動態(tài)生成Word文檔并下載,感興趣的朋友一起看看吧
    2024-06-06

最新評論

高清| 土默特左旗| 泉州市| 冷水江市| 信宜市| 白山市| 泸州市| 搜索| 甘泉县| 怀仁县| 绥中县| 连云港市| 云霄县| 苏尼特左旗| 英吉沙县| 酉阳| 理塘县| 舞阳县| 襄垣县| 乌苏市| 九龙县| 余江县| 顺平县| 聂荣县| 灵山县| 景德镇市| 连江县| 文水县| 西青区| 关岭| 大姚县| 荣成市| 容城县| 吉水县| 威宁| 长岛县| 四川省| 瑞安市| 佳木斯市| 革吉县| 通榆县|