欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Springboot swagger配置過程詳解(idea社區(qū)版2023.1.4+apache-maven-3.9.3-bin)

 更新時(shí)間:2023年07月25日 15:57:26   作者:紅目香薰  
這篇文章主要介紹了Springboot-swagger配置(idea社區(qū)版2023.1.4+apache-maven-3.9.3-bin),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

本文是配置swagger的文章,版本是【2.9.2】

1、pom.xml的jar包引入

這里為了后文操作方便,我多添加了一個(gè)commons-lang3的包用于字符串的非空判斷。

    <!-- swagger包這里2.9.2 -->
    <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>
    <!-- 用作字符串非空判斷 -->
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-lang3</artifactId>
      <version>3.12.0</version>
    </dependency>

2、創(chuàng)建【com.item.swagger】的配置文件【SwaggerConfig.java】

package com.item.swagger;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
    private static Logger log = LoggerFactory.getLogger(SwaggerConfig.class);
    @Bean
    public Docket createRestApi() {
        log.info("進(jìn)入到swagger的配置中");
        return new Docket(DocumentationType.SWAGGER_2)
                // 指定構(gòu)建api文檔的詳細(xì)信息的方法:apiInfo()
                .apiInfo(apiInfo())
                .groupName("紅目香薰·為大一孩子準(zhǔn)備的")
                .select()
                // 指定要生成api接口的包路徑,這里把controller作為包路徑,生成controller中的所有接口
                .apis(RequestHandlerSelectors.basePackage("com.item.controller"))
                .paths(PathSelectors.any())
                .build();
    }
    /**
     * 構(gòu)建api文檔的詳細(xì)信息
     * @return
     */
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                // 設(shè)置頁面標(biāo)題
                .title("Spring Boot集成Swagger2接口總覽")
                // 設(shè)置接口描述
                .description("Swagger接口")
                // 設(shè)置聯(lián)系方式
                .contact(new Contact("測(cè)試swagger","https://laoshifu.blog.csdn.net/",""))
                // 設(shè)置版本
                .version("1.0")
                // 構(gòu)建
                .build();
    }
}

配置文件在上文的代碼中就可以看到,并且我寫了很多注釋,應(yīng)該是可以幫助到大家的。

3、示例swagger注解寫法

package com.item.controller;
import com.item.model.Users;
import com.item.service.UsersService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
@Api("用戶操作接口")
@RestController
@CrossOrigin
public class UsersController {
    @Autowired
    private UsersService usersService;
    /**
     * 獲取所有信息
     * @return
     */
    @GetMapping("/GetInfoApi")
    @ApiOperation(value = "獲取信息",notes = "沒啥留言的")
    public Object GetInfoApi(){
        List<Users> list=usersService.GetInfo();
        HashMap<String,Object> map=new HashMap<String,Object>();
        map.put("state",true);
        map.put("msg","成功");
        map.put("result",list);
        return map;
    }
    @GetMapping("/GetName")
    @ApiOperation(value = "獲取信息",notes = "沒啥留言的")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "nickName",required = true,paramType = "query",dataType = "String",value = "通過昵稱模糊查詢")
    })
    public Object GetName(HttpServletRequest request,Model model){
        String nickName = request.getParameter("nickName");
        List<Users> list=usersService.SelectName(nickName);
        HashMap<String,Object> map=new HashMap<String,Object>();
        map.put("state",true);
        map.put("msg","成功");
        map.put("result",list);
        return map;
    }
    /**
     * 添加信息
     * @param userName
     * @param pwd
     * @param nickName
     * @return
     */
    @PostMapping(value = "/UserAddInfoApi")
    @ApiOperation(value = "添加",notes = "沒啥留言的")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "userName",required = true,paramType = "query",dataType = "String",value = "用戶名"),
            @ApiImplicitParam(name = "pwd",required = true,paramType = "query",dataType = "String",value = "密碼"),
            @ApiImplicitParam(name = "nickName",required = true,paramType = "query",dataType = "String",value = "昵稱")
    })
    public Object UserAddInfoApi(String userName,String pwd,String nickName){
        HashMap<String,Object> map=new HashMap<String,Object>();
        if(
                StringUtils.isEmpty(userName)||
                        StringUtils.isEmpty(pwd)||
                        StringUtils.isEmpty(nickName)
        ){
            map.put("state",false);
            map.put("msg","參數(shù)不潤(rùn)許為空");
            map.put("result","");
            return map;
        }
        usersService.UsersAddInfo(userName, pwd, nickName);
        map.put("state",true);
        map.put("msg","成功");
        map.put("result","");
        return map;
    }
    /**
     * 單個(gè)查詢
     * @param id
     * @return
     */
    @GetMapping("/UsersSelectById")
    @ApiOperation(value = "id查詢",notes = "沒啥留言的")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id",required = true,paramType = "query",dataType = "String",value = "編號(hào)")
    })
    public Object UsersSelectById(String id){
        Users users = usersService.UsersSelectById(Integer.parseInt(id));
        HashMap<String,Object> map=new HashMap<String,Object>();
        map.put("state",true);
        map.put("msg","成功");
        map.put("result",users);
        return map;
    }
    /**
     * 修改api
     * @param id
     * @param pwd
     * @return
     */
    @PostMapping(value = "/UserUpdateInfoApi")
    @ApiOperation(value = "添加",notes = "沒啥留言的")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id",required = true,paramType = "query",dataType = "String",value = "編號(hào)"),
            @ApiImplicitParam(name = "pwd",required = true,paramType = "query",dataType = "String",value = "密碼"),
    })
    public Object UserUpdateInfoApi(String id,String pwd){
        usersService.UsersUpdateInfo(pwd,Integer.parseInt(id));
        HashMap<String,Object> map=new HashMap<String,Object>();
        map.put("state",true);
        map.put("msg","成功");
        map.put("result","");
        return map;
    }
    /**
     * 刪除api
     * @param id
     * @return
     */
    @GetMapping(value = "/UsersDeleteById")
    @ApiOperation(value = "根據(jù)id刪除",notes = "沒啥留言的")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id",required = true,paramType = "query",dataType = "String",value = "編號(hào)")
    })
    public Object UsersDeleteById(String id){
        usersService.UsersDeleteById(Integer.parseInt(id));
        HashMap<String,Object> map=new HashMap<String,Object>();
        map.put("state",true);
        map.put("msg","成功");
        map.put("result","");
        return map;
    }
}

4、swagger的常用注解

@Api:用于標(biāo)識(shí)一個(gè)類為 Swagger 文檔的資源。 用法示例:@Api(value = "User API", = "User Management")

@ApiOperation:用于描述一個(gè)方法的操作信息。 用法示例:@ApiOperation(value = "Get user by ID", notes = "Returns a user based on ID")

@ApiParam:用于描述一個(gè)方法參數(shù)的信息。 用法示例:@ApiParam(value = "User ID", required = true) @PathVariable("id") Long id

@ApiModel:用于描述一個(gè)數(shù)據(jù)模型(DTO)的信息。 用法示例:@ApiModel(value = "User", description = "User details")

@ApiModelProperty:用于描述一個(gè)屬性或字段的信息。 用法示例:@ApiModelProperty(value = "User name")

@ApiResponses:用于描述一個(gè)方法的多個(gè)響應(yīng)。 用法示例:@ApiResponses(value = { @ApiResponse(code = 200, message = "Success"), @ApiResponse(code = 404, message = "Not Found") })

@ApiIgnore:用于指定某個(gè)方法或類不在 Swagger 文檔中顯示。 用法示例:@ApiIgnore

5、訪問效果

網(wǎng)頁的路徑是【http://127.0.0.1:8088/MyAPI/swagger-ui.html】 ,拼接方法是【ip:port/path/swagger-ui.html】

這里的path是在配置文件中的服務(wù)路徑【server.servlet.context-path=/MyAPI】

總結(jié)

swagger是比較常用的一種API交流插件,JAVA和.NET都用,且大多數(shù)程序員都會(huì)使用,方便大家交流API。

到此這篇關(guān)于Springboot-swagger配置(idea社區(qū)版2023.1.4+apache-maven-3.9.3-bin)的文章就介紹到這了,更多相關(guān)Springboot-swagger配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java實(shí)現(xiàn)根據(jù)ip地址獲取地理位置

    java實(shí)現(xiàn)根據(jù)ip地址獲取地理位置

    本文給大家匯總介紹了2種分別使用新浪和淘寶接口,實(shí)現(xiàn)根據(jù)IP地址獲取詳細(xì)的地理位置的代碼,非常的實(shí)用,有需要的小伙伴可以參考下。
    2016-03-03
  • springboot整合websocket后啟動(dòng)報(bào)錯(cuò)(javax.websocket.server.ServerContainer not available)

    springboot整合websocket后啟動(dòng)報(bào)錯(cuò)(javax.websocket.server.ServerCont

    這篇文章主要介紹了springboot整合websocket后啟動(dòng)報(bào)錯(cuò)(javax.websocket.server.ServerContainer not available),通過分析錯(cuò)誤信息、排查代碼和配置,找出問題的根源,并給出相應(yīng)的解決方案,感興趣的可以了解一下
    2024-01-01
  • GraalVM?native-image編譯后quarkus的超音速啟動(dòng)

    GraalVM?native-image編譯后quarkus的超音速啟動(dòng)

    這篇文章主要介紹了經(jīng)過GraalVM?native-image編譯后的quarkus,來帶大家驗(yàn)證一下號(hào)稱超音速亞原子的quarkus是否名副其實(shí),有需要的朋友可以借鑒參考下,希望能夠有所包幫助
    2022-02-02
  • SpringBoot開啟虛擬線程的實(shí)現(xiàn)流程

    SpringBoot開啟虛擬線程的實(shí)現(xiàn)流程

    虛擬線程(Virtual?Thread)也稱協(xié)程或纖程,是一種輕量級(jí)的線程實(shí)現(xiàn),與傳統(tǒng)的線程以及操作系統(tǒng)級(jí)別的線程(也稱為平臺(tái)線程)相比,它的創(chuàng)建開銷更小、資源利用率更高,本文給大家介紹了SpringBoot如何開啟虛擬線程,需要的朋友可以參考下
    2024-06-06
  • Mybatis攔截器打印sql問題

    Mybatis攔截器打印sql問題

    這篇文章主要介紹了Mybatis攔截器打印sql問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • JSON 格式的弊端與解決方法(真實(shí)示例)

    JSON 格式的弊端與解決方法(真實(shí)示例)

    JSON 格式是目前最流行的數(shù)據(jù)交互格式,廣泛應(yīng)用于前后端分離的系統(tǒng)。但也有一些場(chǎng)合不適合使用 JSON 格式,這篇文章主要介紹了JSON 格式的弊端與解決方法,需要的朋友可以參考下
    2022-09-09
  • spring boot security設(shè)置忽略地址不生效的解決

    spring boot security設(shè)置忽略地址不生效的解決

    這篇文章主要介紹了spring boot security設(shè)置忽略地址不生效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Spring整合mybatis實(shí)現(xiàn)過程詳解

    Spring整合mybatis實(shí)現(xiàn)過程詳解

    這篇文章主要介紹了Spring整合mybatis實(shí)現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 解決springmvc使用@PathVariable路徑匹配問題

    解決springmvc使用@PathVariable路徑匹配問題

    這篇文章主要介紹了解決springmvc使用@PathVariable路徑匹配問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • MyBatis的五種批量插入詳解

    MyBatis的五種批量插入詳解

    這篇文章主要介紹了MyBatis的五種批量插入詳解,MyBatis是一款半自動(dòng)的ORM持久層框架,具有較高的SQL靈活性,支持高級(jí)映射(一對(duì)一,一對(duì)多),動(dòng)態(tài)SQL,延遲加載和緩存等特性,但它的數(shù)據(jù)庫無關(guān)性較低,需要的朋友可以參考下
    2023-08-08

最新評(píng)論