简介:springboot + tk mybatis + swagger2 我感觉比较好用,方便后台开发并自测接口和与前端联调,这篇简单介绍一下如何简单搭建还有我踩过的坑。
1.建立一个springboot的项目
可以通过访问http://start.spring.io/快速建立一个springboot项目,也可以通过IDE自己建立。
2.加入tk.mybatis
建完springboot项目,只有一两个springboot的starter依赖,springboot提供了集成tk.mybatis的依赖包
tk.mybatis
mapper-spring-boot-starter
2.0.0
最好是再在
org.mybatis.generator
mybatis-generator-maven-plugin
1.3.5
src/main/resources/mybatis-generator/config.xml
true
true
mysql
mysql-connector-java
5.1.44
其中configurationFile配置的路径就是你插件配置xml的路径,这边就不贴了,然后项目里怎么用呢?
tk.mybatis提供了一个mapper接口,里面封装了很多常用的方法,可以通过反射去生成sql并执行,我们用的话,只需要用自己根据插件对应表生成的mapper接口 继承tk.mybatis中接口就可以了,如下:
@Mapper
public interface SysUserMapper extends tk.mybatis.mapper.common.Mapper {
}
然后在service实现类中,注入你的mapper接口(此处例子是SysUserMapper),如下:
就可以直接使用操作对应表对象 的很多方法,也可以自己写一套二次封装的,根据自己需求来用。
用的时候遇到一个问题,开始没有在启动类中配置Mapper接口的扫描路径,是需要用tk包里的MapperScan来扫描,如下:
之后就可以正常运行了。
3.加上分页插件PageHelper配合使用
依赖如下:
com.github.pagehelper
pagehelper
5.1.4
com.github.pagehelper
pagehelper-spring-boot-autoconfigure
1.2.3
com.github.pagehelper
pagehelper-spring-boot-starter
1.2.3
使用的时候,配合tkmybatis,如下:
public PageInfo queryUserList(PageParamVo pageParamVo) {
PageHelper.startPage(pageParamVo.getStartPage(),pageParamVo.getPageSize());
Example example = new Example(SysUser.class);
example.orderBy("createTime").desc();
List sysUsers = userMapper.selectByExample(example);
return new PageInfo<>(sysUsers);
}
可以通过tk包里的Example对象来设置sql的条件,通过Pagehelper设置分页,然后调用继承的方法去查询,当然,除了Example也有很多其他常用的方法。
4.加入swagger2
swagger2可以用来可视化接口,里面不仅有java代码,还有静态资源,方便了我们自己测试或者在注释清楚的情况下和前端联调。
首先引入包:
io.springfox
springfox-swagger2
2.8.0
io.springfox
springfox-swagger-ui
2.8.0
然后加入swagger2配置类,注意要与启动类同级,
@Configuration
@EnableSwagger2
public class Swagger2 {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2).enable(globalConfig.isSwaggerShow() )
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.springboot.btest.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("btest RESTful APIs")
.description("springboot学习")
.version("1.0")
.build();
}
}
configuration注解表示项目启动的时候 自动加载,EnableSwagger2的注解,表示允许使用swagger。
basePackage里填Controller包路径,
globalConfig.isSwaggerShow()
这一行可以在生产配置里配置false,表示在生产环境下关闭swagger,开发、测试环境可以配置true打开,将这行换成你的配置就行了,学习的话也可以暂时先去掉 enable这个配置。
这里面有个坑就是,我开始在启动类里配置了fastjson序列化,作为返回结果的处理,但是swagger用的是jackson作为json解析,一直会冲突,所以后来我把fastjson序列化配置去掉了,换成了jackson来处理返回结果,这里就不贴代码了,有兴趣的可以下方评论。
以上就是搭建过程,有很多细节漏掉了,如果有不清楚的地方可以下方评论一下哈。
demo git地址:https://github.com/jie1414598381/springbootTKSwagger2Test.git
欢迎star
转载请标明原文地址:https://blog.csdn.net/qq_36758630/article/details/80926417