springboot mybatis-plus模板 springboot结合mybatis-plus快速生成项目模板的方法
`陌上殇` 人气:0想了解springboot结合mybatis-plus快速生成项目模板的方法的相关内容吗,`陌上殇`在本文为您仔细讲解springboot mybatis-plus模板 的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:springboot,mybatis-plus项目模板,springboot,mybatis-plus模板,下面大家一起来学习吧。
mybatis-plus简介:
Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。这是官方给的定义,关于mybatis-plus的更多介绍及特性,可以参考mybatis-plus官网。那么它是怎么增强的呢?其实就是它已经封装好了一些crud方法,我们不需要再写xml了,直接调用这些方法就行,就类似于JPA。
项目模板
1、项目概览
项目结构
创建项目时,父项目用springboot,子项目用maven,父项目统一管理,子项目分模块
springboot父项目(子项目用maven建) - common模块 - web模块 - .......
父项目pom.xml:统一管理版本
<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连接数据库--> <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相关--> <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连接数据库--> <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> * 读取控制台内容 * </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); // 数据源配置 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 # 逻辑已删除值(默认为 1) logic-not-delete-value: 0 # 逻辑未删除值(默认为 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("物资管理系统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; } }
加载全部内容