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

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上就能测试我们的接口。

这里写图片描述

开始搭建springboot项目

1.首先我们打开idea,创建一个springboot项目
这里写图片描述
2. 配置项目的包名以及项目名等
这里写图片描述
3.点击下一步,这里来选择你需要默认引入的springboot的一些关联配置
这里写图片描述
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.在配置文件中加入数据库链接信息
这里写图片描述

#数据库链接信息
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
这里写图片描述

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下都能下载到源码。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值