Spring Boot + Mybatis + Pagehelper+Swagger2整合

一、简介


Spring Boot

    Spring Boot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目。大多数SpringBoot项目只需要很少的配置文件。
写SpringBoot核心功能
1、独立运行Spring项目
    Spring boot 可以以jar包形式独立运行,运行一个Spring Boot项目只需要通过java -jar xx.jar来运行
2、内嵌servlet容器
    Spring Boot可以选择内嵌Tomcat、jetty或者Undertow,这样我们无须以war包形式部署项目。
3、提供starter简化Maven配置
    spring提供了一系列的start pom来简化Maven的依赖加载,例如,当你使用了spring-boot-starter-web,会自动加入依赖包。
4、自动装配Spring
    SpringBoot会根据在类路径中的jar包,类、为jar包里面的类自动配置Bean,这样会极大地减少我们要使用的配置。当然,SpringBoot只考虑大多数的开发场景,并不是所有的场景,若在实际开发中我们需要配置Bean,而SpringBoot没有提供支持,则可以自定义自动配置。
5、无代码生产和xml配置  
    SpringBoot不是借助与代码生成来实现的,而是通过条件注解来实现的,这是Spring4.x提供的新特性。

Mybatis
     MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。


PageHelper
    PageHelper是基于Mybatis的一个开源的分页插件。不需要对SQL进行修改即可实现分页,是最方便使用的分页插件。

Swagger2
     Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。Swagger 让部署管理和使用功能强大的API从未如此简单。


二、框架搭建


创建SpringBoot的maven项目 


添加maven依赖
<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>
</dependency>


<dependency>
<groupId>mysql </groupId>
<artifactId>mysql-connector-java </artifactId>
</dependency>


<dependency>
<groupId>com.alibaba </groupId>
<artifactId>druid </artifactId>
<version>1.0.11 </version>
</dependency>
<dependency>
<groupId>com.alibaba </groupId>
<artifactId>druid-spring-boot-starter </artifactId>
<version>1.1.0 </version>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot </groupId>
<artifactId>mybatis-spring-boot-starter </artifactId>
<version>1.3.1 </version>
</dependency>

<!--pagehelper -->
<dependency>
<groupId>com.github.pagehelper </groupId>
<artifactId>pagehelper-spring-boot-starter </artifactId>
<version>1.1.1 </version>
</dependency>

<!-- Swagger -->
<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-tomcat </artifactId>
<!--<scope>provided</scope>-->
</dependency>

<!-- spring boot devtools 依赖包. -->
<dependency>
<groupId>org.springframework.boot </groupId>
<artifactId>spring-boot-devtools </artifactId>
<optional>true </optional>
<scope>true </scope>
</dependency>

<dependency>
<groupId>log4j </groupId>
<artifactId>log4j </artifactId>
<version>1.2.17 </version>
</dependency>

<!--添加mail依赖-->
<dependency>
<groupId>org.springframework.boot </groupId>
<artifactId>spring-boot-starter-freemarker </artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot </groupId>
<artifactId>spring-boot-starter-mail </artifactId>
</dependency>


配置application文件(建议使用yml)

开发环境配置


SpringBoot Application启动文件配置



Swagger配置,新建Swagger2类


到此项目搭建完成。搭建完成后项目结构如下:


项目启动:直接运行SpringBoot的启动类型Application类

三、示例


SpringBoot几个常用的注解
(1)@RestController和@Controller指定一个类,作为控制器的注解 
(2)@RequestMapping方法级别的映射注解,这一个用过Spring MVC的小伙伴相信都很熟悉 
(3)@EnableAutoConfiguration和@SpringBootApplication是类级别的注解,根据maven依赖的jar来自动猜测完成正确的spring的对应配置,只要引入了spring-boot-starter-web的依赖,默认会自动配置Spring MVC和tomcat容器 
(4)@Configuration类级别的注解,一般这个注解,我们用来标识main方法所在的类,完成元数据bean的初始化。 
(5)@ComponentScan类级别的注解,自动扫描加载所有的Spring组件包括Bean注入,一般用在main方法所在的类上 
(6)@ImportResource类级别注解,当我们必须使用一个xml的配置时,使用@ImportResource和@Configuration来标识这个文件资源的类。 
(7)@Autowired注解,一般结合@ComponentScan注解,来自动注入一个Service或Dao级别的Bean 
(8)@Component类级别注解,用来标识一个组件,比如我自定了一个filter,则需要此注解标识之后,Spring Boot才会正确识别。

Swagger的应用
在controller上添加@Api注解,swagger会自动扫描改类。
在controller上的注解如下
@ApiOperation 描述一个类的一个方法,或者说一个接口
@ApiParam:单个参数描述
@ApiImplicitParams 用在方法上包含一组参数说明
@ApiImplicitParam 用来注解来给方法入参增加说明
在Spring注解的@RequestMapping上声明method,swagger会自动识别接口类型 

Swagger访问地址: http://localhost:8081/swagger-ui.html

PageHelper的使用
在接口实现类调用Mapper的接口之前,使用PageHelper的startPage()方法。Mybatis的查询即可实现分页效果 

在controller中将查询出的list转为PageInfo,添加到map中。PageInfo 类可以自己定义,也可以用PageHelper中的类。


猜你喜欢

转载自blog.csdn.net/cxh1299543968/article/details/79779924