前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >springboot+mybatsi-plus+lombok+swagger-bootstra整合

springboot+mybatsi-plus+lombok+swagger-bootstra整合

作者头像
斯文的程序
发布2019-12-20 11:21:07
7110
发布2019-12-20 11:21:07
举报
文章被收录于专栏:带你回家

版本要求:jdk1.8以上

框架版本介绍:springboot 2.x

mybatis-plus 3.x

Maven 3.x以上

辅助工具介绍:lombok 简化代码

Swagger-bootstrap-ui 生成接口文档

Yml文件

注意:1、springboot1.x与2.x版本改动较大,具体请阅看官方文档。

官方地址:https://spring.io/projects/spring-boot/

2、mybatis-plus 3.x与2.x 版本改动较大,具体请查阅官方文档。

官网地址:https://mp.baomidou.com/

解释说明:

springboot优点在于简化配置,全家桶自动集成优秀框架,基于注解开发。

综上所有优点,我们选择了lombok,与mybatis-plus ,还有swagger-ui。这三个都是基于注解使用。我认为选择其他的感觉优点鸡肋。

pom.xml文件

代码语言:javascript
复制
<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>2.2.0.RELEASE</version>

<relativePath/> <!-- lookup parent from repository -->

</parent>

<properties>

<java.version>1.8</java.version>

</properties>

<dependencies>

<!-- web项目需要引入此jar -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<!-- springboot 测试jar -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

<!-- 引入Druid依赖,阿里巴巴所提供的数据源 -->

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>druid</artifactId>

<version>1.0.29</version>

</dependency>

<!-- oracle 连接驱动 -->

<dependency>

<groupId>com.oracle</groupId>

<artifactId>ojdbc6</artifactId>

<version>12.1.0.1</version>

</dependency>

<!--简化代码小工具 -->

<dependency>

<groupId>org.projectlombok</groupId>

<artifactId>lombok</artifactId>

<version>1.16.16</version>

</dependency>

<!--mybatis Plus-->

<dependency>

<groupId>com.baomidou</groupId>

<artifactId>mybatis-plus-boot-starter</artifactId>

<version>3.1.0</version>

</dependency>

<!-- Swagger -->

<dependency>

<groupId>com.spring4all</groupId>

<artifactId>swagger-spring-boot-starter</artifactId>

<version>1.8.0.RELEASE</version>

</dependency>

<dependency>

<groupId>io.swagger</groupId>

<artifactId>swagger-models</artifactId>

<version>1.5.21</version>

</dependency>

<dependency>

<groupId>com.github.xiaoymin</groupId>

<artifactId>swagger-bootstrap-ui</artifactId>

<version>1.9.1</version>

</dependency>

</dependencies>

<build>

<plugins>

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

</plugin>

</plugins>

</build>

application.yml 文件内容:

代码语言:javascript
复制
server:

port: 9000

#servlet:

# context-path: /card

spring:

###文件上传 springboot版本2.0.4

servlet:

multipart:

max-file-size: 200MB

max-request-size: 200MB

enabled: true

datasource:

# 使用druid数据源

type: com.alibaba.druid.pool.DruidDataSource

driver-class-name: oracle.jdbc.driver.OracleDriver

url: jdbc:oracle:thin:@ip:1521:orcl

username: root

password: root

validation-query: "SELECT 'X' FROM DUAL"

max-wait: 10000 #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制

max-idle: 10 #最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连接将被释放。设为0表示无限制

min-idle: 5 ##最小空闲连接:连接池中容许保持空闲状态的最小连接数量,低于这个数量将创建新的连接

max_active: 50 ##连接池的最大数据库连接数。设为0表示无限制

initial-size: 5 #初始化连接:连接池启动时创建的初始化连接数量

test-on-borrow: false

test-while-idle: true

remove_abandoned: true #超过removeAbandonedTimeout时间后,是否进 行没用连接(废弃)的回收(默认为false,调整为true)

remove_abandoned_timeout: 180 #超过时间限制,回收没有用(废弃)的连接(默认为 300秒,调整为180)

time-between-eviction-runs-millis: 18800

pool-prepared-statements: true

#mybatis 配置文件映射

mybatis-plus:

mapper-locations: classpath:/mapper/*Mapper.xml

typeAliasesPackage: com.siyuan.user.model

global-config:

#字段策略 0:"忽略判断",1:"非 NULL 判断可以插入空字符串"),2:"非空判断"

field-strategy: 1

cache-enabled: false

目录结构:

app启动类内容:

代码语言:javascript
复制
import org.mybatis.spring.annotation.MapperScan;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;



@SpringBootApplication

@MapperScan("com.siyuan.user.mapper")

public class App {

public static void main(String[] args) {

SpringApplication.run(App.class, args);

}

}

loginController控制层类容:

代码语言:javascript
复制
import java.util.List;



import javax.annotation.Resource;



import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;



import com.siyuan.user.mapper.UserMapper;

import com.siyuan.user.model.User;



import io.swagger.annotations.Api;

import io.swagger.annotations.ApiOperation;



@RestController

@RequestMapping("/login")

@Api(value = "/",description="接口文档")

public class LoginController {

@Resource

UserMapper userMapper;

@GetMapping("/index")

@ApiOperation(value = "用户登录", tags = {"返回用户信息"}, notes = "务必提交json格式")

public String index(){

return "hello word!";

}

@GetMapping("/demo01")

@ApiOperation(value = "demo测试2", tags = {"返回用户信息"}, notes = "务必提交json格式")

public String demo01(){

List<User> list = userMapper.selectList(null);

return list.toString();

}

@GetMapping("/demo02")

@ApiOperation(value = "demo测试3", tags = {"返回用户信息"}, notes = "务必提交json格式")

public String demo02(){

int list = userMapper.findOne();

return list+"";

}

}

mapper dao层接口内容:

代码语言:javascript
复制
public interface UserMapper extends BaseMapper<User> {

public int findOne();

}

xml内容:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.siyuan.user.mapper.UserMapper">

<select id="findOne" resultType="int">

select 1 from dual

</select>

</mapper>

model层内容:

代码语言:javascript
复制
import com.baomidou.mybatisplus.annotation.TableField;

import com.baomidou.mybatisplus.annotation.TableName;



import lombok.Data;



@Data

@TableName("表明")

public class User {

@TableField("字段名称")

private String name;

}

swagger-ui内容:

代码语言:javascript
复制
import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;

import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;



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;

import springfox.documentation.swagger2.annotations.EnableSwagger2;



@Configuration //在springboot里面专门为了加载配置文件的标签

@EnableSwagger2 //自动加载配置文件

public class SwaggerConfig extends WebMvcConfigurerAdapter {





@Bean

public Docket createH5RestApi() {

return new Docket(DocumentationType.SWAGGER_2)

.apiInfo(apiInfo())

.groupName("h5")

.select()

.apis(RequestHandlerSelectors.basePackage("com.siyuan.user.controller"))

.paths(PathSelectors.any())

.build();

}



private ApiInfo apiInfo() {

return new ApiInfoBuilder().title("我的接口文档")

.description("这是我的swaggerui生成的接口文档")

.version("1.0.0.0")

.build();

}

//添加ResourceHandler

@Override

public void addResourceHandlers(ResourceHandlerRegistry registry) {

registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");

registry.addResourceHandler("swagger-ui.html")

.addResourceLocations("classpath:/META-INF/resources/");

registry.addResourceHandler("doc.html")

.addResourceLocations("classpath:/META-INF/resources/");

registry.addResourceHandler("/webjars/**")

.addResourceLocations("classpath:/META-INF/resources/webjars/");

super.addResourceHandlers(registry);

}







}

启动App类的main方法,访问:http://localhost:9000/doc.html

如下图:

进入调试接口:

当然也可以直接访问相对于的链接得到相对应的数据。

总结:在集成mybatis-plus的时候需要注意实体类里面的一些注解,@tableName @TableField

常见问题:

1、调用mybatis-plus中自带方法出现方面未绑定错误

解决办法:检查jar是否冲突,检查扫描路径是否正确。

开发中又遇到什么问题可以在下面留言哦 我会回复的。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档