springboot結(jié)合mybatis-plus快速生成項目模板的方法
mybatis-plus簡介:
Mybatis-Plus(簡稱MP)是一個 Mybatis 的增強工具,在 Mybatis 的基礎(chǔ)上只做增強不做改變,為簡化開發(fā)、提高效率而生。這是官方給的定義,關(guān)于mybatis-plus的更多介紹及特性,可以參考mybatis-plus官網(wǎng)。那么它是怎么增強的呢?其實就是它已經(jīng)封裝好了一些crud方法,我們不需要再寫xml了,直接調(diào)用這些方法就行,就類似于JPA。
項目模板
1、項目概覽
項目結(jié)構(gòu)

創(chuàng)建項目時,父項目用springboot,子項目用maven,父項目統(tǒng)一管理,子項目分模塊
springboot父項目(子項目用maven建) - common模塊 - web模塊 - .......
父項目pom.xml:統(tǒng)一管理版本
<properties>
<!--java8-->
<java.version>1.8</java.version>
<!--mybatis-plus-->
<mp.version>3.4.2</mp.version>
<!--swagger-->
<swagger.version>3.0.0</swagger.version>
<!--velocity模板引擎-->
<velocity.version>2.3</velocity.version>
<!--java連接數(shù)據(jù)庫-->
<mysql-connect-java.version>8.0.25</mysql-connect-java.version>
<!--velocity-->
<velocity.version>2.3</velocity.version>
<!--mybatis-plus-generator-->
<mybatis-plus-generator.version>3.4.1</mybatis-plus-generator.version>
<!--knife4j-->
<knife4j.version>3.0.2</knife4j.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mp.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>${mybatis-plus-generator.version}</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>${velocity.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-connect-java.version}</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>${knife4j.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
子項目pom.xml:公共模塊(common)提取出來
<dependencies>
<!--controller相關(guān)-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
<!--代碼生成器-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
</dependency>
<!--swagger-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
</dependency>
<!--java連接數(shù)據(jù)庫-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--knife4j-->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
子項目web模塊pom.xml(直接引用common模塊)
<dependencies>
<dependency>
<groupId>cn.jie</groupId>
<artifactId>admin-base-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
代碼生成器
public class CodeGenerator {
/**
* <p>
* 讀取控制臺內(nèi)容
* </p>
*/
public static String scanner(String tip) {
Scanner scanner = new Scanner(System.in);
StringBuilder help = new StringBuilder();
help.append("請輸入" + tip + ":");
System.out.println(help.toString());
if (scanner.hasNext()) {
String ipt = scanner.next();
if (StringUtils.isNotBlank(ipt)) {
return ipt;
}
}
throw new MybatisPlusException("請輸入正確的" + tip + "!");
}
public static void main(String[] args) {
// 代碼生成器
AutoGenerator mpg = new AutoGenerator();
// 全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = scanner("項目路徑");
//項目生成路徑
gc.setOutputDir(projectPath + "/src/main/java");
gc.setAuthor("sky");
//打開資源管理器
gc.setOpen(false);
//開啟swagger
gc.setSwagger2(true);
//覆蓋文件
gc.setFileOverride(false);
gc.setServiceName("%sService");
//主鍵自增
gc.setIdType(IdType.AUTO);
//java.util.date
gc.setDateType(DateType.ONLY_DATE);
mpg.setGlobalConfig(gc);
// 數(shù)據(jù)源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://localhost:3306/adminweb?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=GMT%2B8");
// dsc.setSchemaName("public");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("root");
dsc.setDbType(DbType.MYSQL);
mpg.setDataSource(dsc);
// 包配置
PackageConfig pc = new PackageConfig();
pc.setModuleName(scanner("模塊名"));
pc.setParent("cn.jie");
pc.setEntity("entity");
pc.setMapper("mapper");
pc.setController("controller");
pc.setService("service");
pc.setServiceImpl("service.impl");
mpg.setPackageInfo(pc);
// 策略配置
StrategyConfig strategy = new StrategyConfig();
//表
strategy.setInclude(scanner("表名,多個英文逗號分割").split(","));
//駝峰命名
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
//lombok
strategy.setEntityLombokModel(true);
//restful
strategy.setRestControllerStyle(true);
strategy.setControllerMappingHyphenStyle(true);
mpg.setStrategy(strategy);
mpg.execute();
}
}
springboot配置
spring:
application:
name: admin-base-web
datasource:
type:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/adminweb?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=GMT%2B8
username: root
password: root
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
server:
port: 8081
mybatis-plus:
global-config:
db-config:
logic-delete-field: deleted # 全局邏輯刪除的實體字段名(since 3.3.0,配置后可以忽略不配置步驟2)
logic-delete-value: 1 # 邏輯已刪除值(默認(rèn)為 1)
logic-not-delete-value: 0 # 邏輯未刪除值(默認(rèn)為 0)
mapper-locations: classpath*:/mapper/*.xml

2、美化swagger-ui
swagger注意要用3.0.0版本
配置完swagger2config
@Configuration
@EnableSwagger2
@EnableKnife4j
@Import(BeanValidatorPluginsConfiguration.class)
public class Swagger2Config {
@Bean(value = "defaultApi2")
public Docket defaultApi2() {
Docket docket=new Docket(DocumentationType.SWAGGER_2)
.apiInfo(new ApiInfoBuilder()
//.title("swagger-bootstrap-ui-demo RESTful APIs")
.description("物資管理系統(tǒng)API文檔")
.termsOfServiceUrl("https://www.cnblogs.com/thatbluesky/")
.contact(new Contact("我的博客","https://www.cnblogs.com/thatbluesky/","1879186403@qq.com"))
.version("1.0")
.build())
//分組名稱
.groupName("1.0版本")
.select()
//這里指定Controller掃描包路徑
.apis(RequestHandlerSelectors.basePackage("cn.jie.system.controller"))
.paths(PathSelectors.any())
.build();
return docket;
}
}
訪問:http://localhost:8081/doc.html

以上就是springboot結(jié)合mybatis-plus快速生成項目模板的方法的詳細(xì)內(nèi)容,更多關(guān)于springboot mybatis-plus項目模板 的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
SpringBoot整合PageHelper分頁無效的常見原因分析
這篇文章主要介紹了SpringBoot整合PageHelper分頁無效的常見原因分析,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08
Spring Session實現(xiàn)分布式session的簡單示例
本篇文章主要介紹了Spring Session實現(xiàn)分布式session的簡單示例,具有很好的參考價值。下面跟著小編一起來看下吧2017-05-05

