springboot整合mybatis與swagger生成rest介面文件
阿新 • • 發佈:2018-12-21
專案結構
1.swagger配置
package com.example.szp1.config; 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.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; @Configuration public class Swagger2 { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.example.szp1.controller")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("springboot利用swagger構建api文件") .description("簡單優雅的restfun風格,http://blog.csdn.net/****") .termsOfServiceUrl("http://blog.csdn.net/***") .version("1.0") .build(); } }
2.userController
package com.example.szp1.controller; import com.example.szp1.domain.User; import com.example.szp1.service.UserService; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import org.apache.ibatis.annotations.Param; import org.omg.CORBA.OBJ_ADAPTER; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.List; @RestController public class UserController { @Resource private UserService userService; //註冊 @ApiOperation(value="建立使用者", notes="根據User物件建立使用者") @ApiImplicitParam(name = "user", value = "使用者詳細實體user", required = true, dataType = "User") @PostMapping("/user/reg.action") public Object reg(@Param("username")String username, @Param("password")String password){ int end=userService.reg(username,password); return end; } //登入 @ApiOperation("登入") @GetMapping("/user/login.action") public User login(@Param("username")String username, @Param("password")String password){ User user=userService.login(username,password); return user; } //遍歷 @ApiOperation(value = "檢視使用者",notes = "遍歷使用者表") @ApiImplicitParam(name = "username", value = "使用者ID", required = true, dataType = "String", paramType = "path") @GetMapping("/user/display.action") public List<User> display(){ List<User> list=userService.display(); return list; } //驗證已有賬號 @ApiOperation(value="獲取使用者詳細資訊", notes="根據url的username驗證該使用者名稱是否被註冊") @ApiImplicitParam(name = "username", value = "使用者ID", required = true, dataType = "String", paramType = "path") @GetMapping("/user/getExist.action/{username}") public boolean getExist(@PathVariable("username")String username){ boolean end=userService.exist(username); return end; } }
3.啟動項
package com.example.szp1; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import springfox.documentation.swagger2.annotations.EnableSwagger2; @EnableAutoConfiguration @EnableSwagger2 @SpringBootApplication(exclude ={DataSourceAutoConfiguration.class}) public class Szp1Application { public static void main(String[] args) { SpringApplication.run(Szp1Application.class, args); } }
4.pom檔案
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>szp1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>szp1</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.projectreactor</groupId>
<artifactId>reactor-test</artifactId>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resource</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.tld</include>
</includes>
</resource>
</resources>
</build>
</project>
swagger截圖