欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Sprintboot整合SSM框架+Swagger调试接口

程序员文章站 2022-07-02 21:48:09
...

Sprintboot整合SSM框架+Swagger调试接口

本次博客所写的程序都在github上:https://github.com/JiShaochen/Shaochen

好了,开始搭建一个简单的ssm框架,并且我们用swagger来测试一下我们写的接口,那么问题来了!

什么是swagger?

每个人理解可能不是一样的,我的理解,它是为了方便我们调试我们的接口并可以根据配置的swagger生成接口文档的一个工具,我们可以通过导入jar包,并配置好,在我们的controller或rest层进行一定的配置,我们就可以通过swagger-ui工具,在我们的页面上看到我们所有配置好的接口,我们可以通过这个页面进行测试我们的接口,现在我们的接口大多数都是rest风格的,一些post、update、delete请求无法通过浏览器来请求,而一些工具又很不方便,需要我们手动更改url和一些请求参数等,如果我们使用swagger,我们只需要配置一次,我们就可以一劳永逸了,直接在swagger-ui上就能测试我们的接口。

Sprintboot整合SSM框架+Swagger调试接口

开始搭建springboot项目

1.首先我们打开idea,创建一个springboot项目
Sprintboot整合SSM框架+Swagger调试接口
2. 配置项目的包名以及项目名等
Sprintboot整合SSM框架+Swagger调试接口
3.点击下一步,这里来选择你需要默认引入的springboot的一些关联配置
Sprintboot整合SSM框架+Swagger调试接口
4.好了点击两次next,我们就算构建好了一个小项目

接下来我们要引入数据库的相关jar包了;

 <!-- 数据库链接 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

我们将数据库的maven引入到pom文件后,我们就可以进行下一步了

5.在配置文件中加入数据库链接信息
Sprintboot整合SSM框架+Swagger调试接口

#数据库链接信息
spring.datasource.url=jdbc:mysql://localhost:3306/china
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.jpa.database = mysql

现在启动项目应该就是没有问题的

6 . 我们现在编写一个小接口,来测试一下是否挺跑通


import org.springframework.web.bind.annotation.*;
/**
 * @author JiShaochen
 * @date 2018/6/15 15:54
 * @desc 用户案例controller层.
 */
@RestController
@RequestMapping(value = "/user")
public class UserDemoController {

    @GetMapping(value = "/test")
    public String testDemo() {
        return "Hello World";
    }

}

在浏览器上输入 http://localhost:8080/user/test 如果在浏览器上展示出Hello World,表示成功!
我们现在要考虑一个问题,这是一个接口,我们在浏览器上直接输入url还是很方便,但是如果接口很多,我们需要逐个测试,我们怎么在浏览器上测呢?更何况我们还会有post、put、delete请求,我们怎么做?好了,接下来说swagger

springboot整合swagger


  1. 引入swagger的相关jar包

在pom文件中引入swagger的相关jar包
<!-- swagger -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.7.0</version>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.7.0</version>
        </dependency>

2 . 添加lombok的相关依赖

有了lombok的依赖,我们就可以使用注解来代替getset方法了。就不用操心了。

   <!-- lombok  -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.0</version>
            <scope>provided</scope>
        </dependency>

3 . 加入swagger的配置类

@EnableSwagger2//Swagger的开关,表示我们在项目中启用Swagger
@Configuration//声名这是一个配置类
@ConfigurationProperties(prefix = "swagger")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class SwaggerConfig {
    //controller接口所在的包
    @Value("${swagger.basePackage}")
    private String basePackage;

    //当前文档的标题
    @Value("${swagger.title}")
    private String title;

    //当前文档的详细描述
    @Value("${swagger.description}")
    private String description;

    //当前文档的版本
    @Value("${swagger.version}")
    private String version;

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage(basePackage))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title(title)
                .description(description)
                .version(version)
                .build();
    }

}

我们还要在配置文件中添加我们的swagger的配置信息

#配置swagger
swagger.basePackage=com.shaochen.swaggerdemo.rest
swagger.title=userDemo
swagger.description=this is a userDemo.
swagger.version=V1.0

这样我们的swagger就配置好了。
接下来,我们修改一下我们的controller,新增swagger的注解,这样我们就能通过swagger的ui进行测试我们的接口

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
/**
 * @author JiShaochen
 * @date 2018/6/15 15:54
 * @desc 用户案例controller层.
 */
@RestController
@RequestMapping(value = "/user")
@Api(value = "user", tags = {"userDemo"})
public class UserDemoController {

    @GetMapping(value = "/test")
    @ApiOperation(value = "test", produces = "application/json")
    public String testDemo() {
        return "Hello World";
    }

}

我们来看一下效果图 http://localhost:8080/swagger-ui.html
Sprintboot整合SSM框架+Swagger调试接口

springboot整合mybatis

这里整合mybatis只演示插入,因为可以结合swagger的post请求,其他的在github上

1 . 引入mybatis的jar

<!-- mybatis -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.1</version>
        </dependency>

2 . 编写请求体

    // 用户的名字
    @ApiModelProperty(name = "小明同学", value = "name", example = "小明同学")
    private String name;
    // 用户的地址
    @ApiModelProperty(name = "黑龙江", value = "address", example = "黑龙江")
    private String address;
    // 用户的年龄
    @ApiModelProperty(name = "18", value = "age", example = "18")
    private Integer age;
    // 用户的电话号
    @ApiModelProperty(name = "13804691613", value = "phone", example = "13504002455")
    private String phone;

3 . 编写controller
UserDemoController;

    @Resource
    UserDemoService userService;

    @ApiOperation(value = "插入用户案例", produces = "application/json")
    @PostMapping
    public String addUserDemo(@RequestBody UserDemoDTO userDemoDTO) {
        userService.addUserDemo(userDemoDTO);
        return "ok" ;
    }

4 . 编写service,省略了service的接口
UserServiceImpl

    @Resource
    UserDemoMapper userMapper;

    /**
     * @Author: ShaoChen
     * @Description:  插入用户案例
     * @Date: 18:44 2018/6/13
     */
    @Override
    public void addUserDemo(UserDemoDTO userDemoDTO) {
        Integer age = userDemoDTO.getAge();
        String address = userDemoDTO.getAddress();
        String name = userDemoDTO.getName();
        String phone = userDemoDTO.getPhone();
        userMapper.addUserDemo(new UserDemoVO(name, address, age, phone));
    }

5 . mapper的编写
UserMapper;

    @Insert("INSERT INTO `user` (`name`, `age`, `address`, `phone`) VALUES (#{name}, #{age}, #{address}, #{phone});")
    void addUserDemo(UserDemoVO userDemoVo);

这样一个简单的插入接口就已经结束了,剩下的查询、修改和删除在github下都能下载到源码。