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
- 引入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下都能下载到源码。
上一篇: 去年广东云计算产值过千亿
下一篇: C++的指针常量和常量指针