springboot + tk.mybatis + swagger2的项目搭建

简介: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

最好是再在中加入一个根据xml自动生成表映射对象和接口的插件,如下:


                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),如下:

springboot + tk.mybatis + swagger2的项目搭建_第1张图片

就可以直接使用操作对应表对象 的很多方法,也可以自己写一套二次封装的,根据自己需求来用。

用的时候遇到一个问题,开始没有在启动类中配置Mapper接口的扫描路径,是需要用tk包里的MapperScan来扫描,如下:

springboot + tk.mybatis + swagger2的项目搭建_第2张图片

之后就可以正常运行了。

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

 

你可能感兴趣的:(框架)