SpringBoot整合Mybatis-Plus代码自动生成,以及接口文档配置
添加相关依赖
导入Mybatis-Plus以及代码生成依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.1</version>
</dependency>
<!-- velocity -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
<!-- freemarker -->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.31</version>
</dependency>
<!-- Swagger2 核心依赖 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<!--配合Swagger2 形成一个knife4j页面 -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.4</version>
</dependency>
整合mybatis-plus,以及代码生成类
springboot配置文件
server:
port: 8088
spring:
datasource:
url: jdbc:mysql://localhost:3306/databaseName
username: root
password: xxxx
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis-plus:
configuration:
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case: false
mapper-locations: classpath:mapper/*.xml
创建代码生成器工具类
public class CodeGenerator {
public static void main(String[] args) {
//这块吧自己的表名添加到集合
List<String> tables = new ArrayList<>();
tables.add("ms_article");
tables.add("ms_sys_user");
// 项目路径
String projectPath = System.getProperty("user.dir");
// 代码生成器
FastAutoGenerator.create("jdbc:mysql://localhost:3306/blog?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai", "root", "root")
// 全局配置
.globalConfig(builder -> {
// 作者
builder.author("xxx")
// 输出路径
.outputDir(projectPath + "/src/main/java")
// 禁止打开输出目录
.disableOpenDir()
// 开启swagger
.enableSwagger()
// 注释日期
.commentDate("yyyy/MM/dd HH:mm")
// 开启覆盖之前生成的文件
.fileOverride();
})
.packageConfig(builder -> {
builder.parent("com.blog")
.entity("pojo")
.service("service")
.serviceImpl("service.impl")
.controller("controller")
.mapper("mapper")
.xml("mapper")
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, projectPath + "/src/main/resources/mapper/"));
})
.strategyConfig(builder -> {
builder.addInclude(tables)
// 增加过滤表前缀
.addTablePrefix("ms_")
// service策略配置
.serviceBuilder()
.formatServiceFileName("%sService")
.formatServiceImplFileName("%sServiceImpl")
// entity策略配置
.entityBuilder()
// 数据库表映射到实体的命名策略
.naming(NamingStrategy.underline_to_camel)
// 数据库表字段映射到实体的命名策略
.columnNaming(NamingStrategy.no_change)
// 开启lombok模型
.enableLombok()
// controller策略设置
.controllerBuilder()
.formatFileName("%sController")
.enableRestStyle()
.enableHyphenStyle()
// mapper策略设置
.mapperBuilder()
// 生成通用的resultMap
.enableBaseResultMap()
.enableBaseColumnList()
.superClass(BaseMapper.class)
.formatMapperFileName("%sMapper")
.enableMapperAnnotation()
.formatXmlFileName("%sMapper");
})
// 使用Freemarker引擎模板,默认的是Velocity引擎模板
.templateEngine(new FreemarkerTemplateEngine())
.execute();
}
}
工具类中的表名 数据库连接信息,包结构需要修改一下,完成之后运行main方法即可
整合Swagger2接口文档knife4j界面美化
只需一个配置类即可
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) //添加ApiOperiation注解的被扫描
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder().title("Api Documentation").description("Api Documentation")
.build();
}
}
启动项目,访问接口文档地址,默认为 http://localhost:8888/doc.html 如果报错 那就是SpringBoot版本太高
解决办法
再SpringBoot配置文件中加上这个
spring:
mvc:
pathmatch:
matching-strategy: ant_path_matcher
版权声明:本文为xiaobaijun_ge原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。