Commit 77fbdc84 authored by zhoushiguang's avatar zhoushiguang

代码生成器

parent 6e7f593c
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>gernerator</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>gernerator</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<ignite.version>2.8.1</ignite.version>
</properties>
<dependencies>
<!-- MyBatisPlus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.1</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.3.1</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
<version>3.3.1</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-typehandlers-jsr310</artifactId>
<version>1.0.2</version>
</dependency>
<!--<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>3.1</version>
</dependency>-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.0.3</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.30</version>
</dependency>
<!-- 默认模板引擎 -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
<exclusions>
<exclusion>
<artifactId>javassist</artifactId>
<groupId>org.javassist</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.FileOutConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.TemplateConfig;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import java.util.ArrayList;
import java.util.List;
/**
* @ClassName:Generator
* @Description:代码自动生成器
*/
public class CodeGeneratorMYSQLPlus {
static String baseOutputDir = "./signal-optimize-service";
static String subModulePackage = ".judgeanalysis";
public static void main(String[] args) {
// 生成地址 : // System.getProperty("user.dir") == 得到当前项目的实际地址
String outputDir = System.getProperty("user.dir") + "/src/main/java";
outputDir = baseOutputDir + "/src/main/java";
System.out.println(outputDir);
// 表名, 注意大小写
String[] tableNames = new String[]{"t_analysis_problem_cross_day"};
// 数据库地址
String url = "jdbc:mysql://localhost:3306/wjdit_ecosystem_db_v1.0.0?serverTimezone=Asia/Shanghai&useUnicode=true&useSSL=false&characterEncoding=utf8";
// 用户名
String userName = "root";
// 密码
String password = "123456";
// 父包路径
String parentPackage = "net.wanji.opt";
// 需要去掉的表名前缀
String prefixTable = "t_";
generate(outputDir, tableNames, url, userName, password, parentPackage, prefixTable);
}
/**
* @param outputDir 生成地址
* @param tableNames 表名
* @param url 数据库地址
* @param userName 用户名
* @param password 密码
* @param parentPackage 父包路径
* @param prefixTable 需要去掉的表名前缀
*/
public static void generate(String outputDir, String[] tableNames, String url, String userName,
String password, String parentPackage, String prefixTable) {
// =============== 全局配置 ==================
GlobalConfig gc = new GlobalConfig();
gc.setOutputDir(outputDir)
.setActiveRecord(false) // 是否支持 AR, 实体类只需继承 Model 类即可进行强大的 CRUD 操作
.setAuthor("fengyi") // 设置作者名字
.setFileOverride(true) // 文件覆盖(全新文件)
.setIdType(IdType.AUTO) // 主键策略
.setBaseResultMap(true) // SQL 映射文件
.setBaseColumnList(true) // SQL 片段
.setServiceName("%sService") // service的名字
.setMapperName("%sMapper")
.setOpen(false);
// ================= 数据源配置 ===============
DataSourceConfig dsc = new DataSourceConfig();
dsc.setDbType(DbType.MYSQL)
.setDriverName("com.mysql.jdbc.Driver");
dsc.setUrl(url)
.setUsername(userName)
.setPassword(password);
// ================= 包配置 ===================
PackageConfig pc = new PackageConfig();
pc.setParent(parentPackage) // 配置父包路径
// .setModuleName("base") // 配置业务包路径
.setMapper("dao.mapper" + subModulePackage)
.setEntity("entity" + subModulePackage)
.setService("servicev2" + subModulePackage)
.setServiceImpl("servicev2" + subModulePackage + ".impl") // 会自动生成 impl,可以不设定
.setController("controllerv2" + subModulePackage);
// ================== 自定义配置 =================
InjectionConfig cfg = new InjectionConfig() {
@Override
public void initMap() {
// to do nothing
}
};
List<FileOutConfig> focList = new ArrayList<>();
// 调整 xml 生成目录演示
focList.add(new FileOutConfig("/templates/mybatisplus/mapper.xml.ftl") {
@Override
public String outputFile(TableInfo tableInfo) {
// 自定义输入文件名称
return baseOutputDir + "/src/main/resources/mapper/" + subModulePackage.substring(1) + "/"
+ tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
}
});
cfg.setFileOutConfigList(focList);
// =================== 策略配置 ==================
StrategyConfig strategy = new StrategyConfig();
strategy.setNaming(NamingStrategy.underline_to_camel) // 表名命名: underline_to_camel 底线变驼峰
.setColumnNaming(NamingStrategy.underline_to_camel) // 字段命名: underline_to_camel 底线变驼峰
.setInclude(tableNames) // 需要生成的 表名
.setCapitalMode(true) // 全局大写命名 ORACLE 注意
.setTablePrefix(prefixTable) // 去掉 表的前缀
// .setFieldPrefix(pc.getModuleName() + "_") // 去掉字段前缀
// .setSuperEntityClass("com.maoxs.pojo") // 继承类
// .setSuperControllerClass("com.maoxs.controller") // 继承类
// .setSuperEntityColumns("id") // 设置超级超级列
.setEntityLombokModel(true) // 是否加入lombok
.setControllerMappingHyphenStyle(true) // 设置controller映射联字符
.setRestControllerStyle(true)
;
//自动填充字段,在项目开发过程中,例如创建时间,修改时间,每次,都需要我们来指定,太麻烦了,设置为自动填充规则,就不需要我们赋值咯
// List<TableFill> list = new ArrayList<TableFill>();
// TableFill tableFill1 = new TableFill("register_date",FieldFill.INSERT);
// TableFill tableFill2 = new TableFill("update_time",FieldFill.INSERT_UPDATE);
// list.add(tableFill1);
// list.add(tableFill2);
// strategy.setTableFillList(list);
// ================== 自定义模板配置: 默认配置位置 mybatis-plus/src/main/resources/templates ======================
// 放置自己项目的 src/main/resources/templates 目录下, 默认名称一下可以不配置,也可以自定义模板名称
TemplateConfig tc = new TemplateConfig();
tc.setXml("/templates/mybatisplus/mapper.xml") // 设置生成xml的模板
.setEntity("/templates/mybatisplus/entity.java") // 设置生成entity的模板
.setMapper("/templates/mybatisplus/mapper.java") // 设置生成mapper的模板
.setController("/templates/mybatisplus/controller.java") // 设置生成controller的模板
.setService("/templates/mybatisplus/service.java") // 设置生成service的模板
.setServiceImpl("/templates/mybatisplus/serviceImpl.java") // 设置生成serviceImpl的模板
;
// ==================== 生成配置 ===================
AutoGenerator mpg = new AutoGenerator();
mpg.setCfg(cfg)
.setTemplate(tc)
.setGlobalConfig(gc)
.setDataSource(dsc)
.setPackageInfo(pc)
.setStrategy(strategy)
.setTemplateEngine(new FreemarkerTemplateEngine()); // 选择 freemarker引擎,注意 pom 依赖必须有!
mpg.execute();
System.out.println("MyBatis Plus Code Generator Finished!!");
}
}
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.FileOutConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.TemplateConfig;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import java.util.ArrayList;
import java.util.List;
/**
* @Date 2019/10/31
* @description mybatisplus基础代码生成工具
* 根据实际情况更改TABLE_NAME、ENTITY_NAME
*/
public class CodeGeneratorMyBatis1 {
private static final String dburl = "jdbc:mysql://localhost:3306/wjdit_ecosystem_db_v1.0.0?serverTimezone=Asia/Shanghai&useUnicode=true&useSSL=false&characterEncoding=utf8";
private static final String userName = "root";
private static final String password = "123456";
private static final String TABLE_NAMES ="t_analysis_problem_cross_day";
private static String ENTITY_NAME = null;
private static final String AUTHOR ="fengyi";
private static final boolean OVERITE_FILE = true; //是否覆盖源文件
private static final String PARENT_PACAGE = "net.wanji";
private static final String MODULE_NAME="opt";
//表头标识
private static final String TABLE_PREFIX="t_";
static String subModulePackage = ".judgeanalysis";
private static String toEntityName(String tableName) {
if (tableName.startsWith(TABLE_PREFIX)) {
tableName = tableName.substring(TABLE_PREFIX.length());
}
String[] sps = tableName.split("_");
StringBuilder stringBuilder = new StringBuilder();
for (String str : sps) {
String upStr = str.substring(0,1).toUpperCase()+str.substring(1);
stringBuilder.append(upStr);
}
return stringBuilder.toString();
}
public static void main(String[] args) {
String[] sps = TABLE_NAMES.split(",");
for (String tableName : sps) {
codeGen(tableName);
}
}
public static void codeGen(String tableName) {
if (ENTITY_NAME==null)
ENTITY_NAME = toEntityName(tableName);
// 代码生成器
AutoGenerator mpg = new AutoGenerator();
// 全局配置
GlobalConfig gc = new GlobalConfig();
// String projectPath = "./holo-decision-big-screen";
String projectPath = "./wj-gernerator/output";
gc.setOutputDir(projectPath+"/src/main/java");
gc.setAuthor(AUTHOR);
gc.setOpen(false);
gc.setSwagger2(true); //实体属性 Swagger2 注解
gc.setEnableCache(false);
gc.setEntityName(ENTITY_NAME);
gc.setControllerName(ENTITY_NAME+"Controller");
gc.setServiceName(ENTITY_NAME+"Service");
gc.setServiceImplName(ENTITY_NAME+"ServiceImpl");
gc.setMapperName(ENTITY_NAME+"Mapper");
gc.setXmlName(ENTITY_NAME+"Mapper");
gc.setBaseResultMap(true);
gc.setBaseColumnList(true);
gc.setIdType(IdType.NONE);
gc.setDateType(DateType.ONLY_DATE);
gc.setFileOverride(OVERITE_FILE);
mpg.setGlobalConfig(gc);
// 数据源配置mysql
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl(dburl);
dsc.setDriverName("com.mysql.jdbc.Driver");
dsc.setUsername(userName);
dsc.setPassword(password);
mpg.setDataSource(dsc);
// 包配置
PackageConfig pc = new PackageConfig();
pc.setModuleName(MODULE_NAME);
pc.setParent(PARENT_PACAGE);
pc.setController("controllerv2"+subModulePackage);
pc.setEntity("entity"+subModulePackage);
pc.setMapper("dao.mapper"+subModulePackage);
pc.setService("service2"+subModulePackage);
pc.setServiceImpl("service2"+subModulePackage+".impl");
mpg.setPackageInfo(pc);
// ================== 自定义配置 =================
InjectionConfig cfg = new InjectionConfig() {
@Override
public void initMap() {
// to do nothing
}
};
List<FileOutConfig> focList = new ArrayList<>();
// 调整 xml 生成目录演示
focList.add(new FileOutConfig("/templates/mybatis1/mapper.xml.ftl") {
@Override
public String outputFile(TableInfo tableInfo) {
// 自定义输入文件名称
return projectPath + "/src/main/resources/mapper/"+subModulePackage.substring(1)+"/"
+ tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
}
});
cfg.setFileOutConfigList(focList);
//MapperXML配置如果模板引擎是 freemarker
String templatePath = "templates/mybatis1/mapper.xml.ftl";
String beanTemplatePath ="templates/mybatis1/entity.java.ftl";
mpg.setCfg(cfg);
// 配置模板
TemplateConfig templateConfig = new TemplateConfig();
// 配置自定义输出模板
//指定自定义模板路径,注意不要带上.ftl/.vm, 会根据使用的模板引擎自动识别
templateConfig.setEntity("templates/mybatis1/entity.java");
templateConfig.setXml("templates/mybatis1/mapper.xml");
templateConfig.setMapper("templates/mybatis1/mapper.java");
templateConfig.setService("templates/mybatis1/provider.java");
templateConfig.setServiceImpl("templates/mybatis1/providerImpl.java");
templateConfig.setController("templates/mybatis1/restServer.java");
mpg.setTemplate(templateConfig);
// 策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
// strategy.setSuperEntityClass("com.baomidou.ant.service.BaseEntity"); //entity父级
strategy.setEntityLombokModel(true);
strategy.setRestControllerStyle(true);
// 公共父类
// strategy.setSuperControllerClass("com.baomidou.ant.service.BaseController");
// 写于父类中的公共字段
// strategy.setSuperEntityColumns("id");
strategy.setInclude(tableName); //表名,多个英文逗号分割").split(",")
strategy.setControllerMappingHyphenStyle(true);
strategy.setTablePrefix(TABLE_PREFIX);
strategy.setSuperMapperClass("BaseInterfaceMapper");
strategy.setSuperServiceClass(null);
strategy.setSuperEntityClass("TrackableEntity");
strategy.setSuperServiceImplClass(null);
strategy.setFieldPrefix("t_","s_","dt_","i_","bs_");
strategy.setTablePrefix("t_");
mpg.setStrategy(strategy);
mpg.setTemplateEngine(new FreemarkerTemplateEngine());
mpg.execute();
System.out.println("MyBatis Plus Code Generator Finished!!");
}
}
package com.wanji.${package.ModuleName}.entity;
package net.wanji.${package.ModuleName}.entity;
<#if swagger2>
import io.swagger.annotations.ApiModel;
......@@ -9,7 +9,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
</#if>
import com.wanji.common.framework.domain.TrackableEntity;
import net.wanji.common.framework.domain.TrackableEntity;
import java.util.Date;
import java.math.BigDecimal;
......
package ${package.Mapper};
import com.wanji.${package.ModuleName}.entity.${entity};
import net.wanji.${package.ModuleName}.entity.${entity};
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.wanji.common.framework.mapper.BaseInterfaceMapper;
import net.wanji.common.framework.mapper.BaseInterfaceMapper;
/**
* <p>
......
......@@ -4,7 +4,7 @@
<#if baseResultMap>
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.wanji.${package.ModuleName}.entity.${entity}">
<resultMap id="BaseResultMap" type="net.wanji.${package.ModuleName}.entity.${entity}">
<#list table.fields as field>
<#if field.keyFlag><#--生成主键排在第一位-->
<id column="${field.name}" property="${field.propertyName}" />
......@@ -38,7 +38,7 @@
</#if>
<!--新增操作 -->
<insert id="save" parameterType="com.wanji.${package.ModuleName}.entity.${entity}">
<insert id="save" parameterType="net.wanji.${package.ModuleName}.entity.${entity}">
insert into
<include refid="Table_Name"/>
(<include refid="Base_Column_List"/>)
......@@ -108,7 +108,7 @@
</select>
<!--更新-->
<update id="update" parameterType="com.wanji.${package.ModuleName}.entity.${entity}">
<update id="update" parameterType="net.wanji.${package.ModuleName}.entity.${entity}">
update
<include refid="Table_Name"/>
<include refid="sql_update"/>
......
package com.wanji.${package.ModuleName}.service;
package net.wanji.${package.ModuleName}.service;
import com.wanji.${package.ModuleName}.entity.${entity};
import com.wanji.common.framework.dubbointerface.BaseDubboInterface;
import net.wanji.${package.ModuleName}.entity.${entity};
import net.wanji.common.framework.dubbointerface.BaseDubboInterface;
/**
......
package ${package.ServiceImpl};
import com.wanji.common.framework.dubbointerface.impl.BaseDubboInterfaceImpl;
import com.wanji.common.framework.exception.DubboProviderException;
import com.wanji.common.framework.mapper.BaseInterfaceMapper;
import com.wanji.common.framework.rest.JsonViewObject;
import com.wanji.${package.ModuleName}.entity.${entity};
import com.wanji.${package.ModuleName}.service.${entity}Provider;
import net.wanji.common.framework.dubbointerface.impl.BaseDubboInterfaceImpl;
import net.wanji.common.framework.exception.DubboProviderException;
import net.wanji.common.framework.mapper.BaseInterfaceMapper;
import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.${package.ModuleName}.entity.${entity};
import net.wanji.${package.ModuleName}.service.${entity}Provider;
import ${package.Mapper}.${table.mapperName};
import lombok.extern.slf4j.Slf4j;
......
package ${package.Controller};
import com.wanji.common.framework.Constants;
import com.wanji.common.framework.dubbointerface.BaseDubboInterface;
import com.wanji.common.framework.rest.JsonViewObject;
import com.wanji.common.framework.rest.AbstractRestServer;
import com.wanji.common.framework.dubbointerface.BaseDubboInterface;
import com.wanji.common.framework.exception.DubboProviderException;
import com.wanji.common.framework.i18n.I18nResourceBundle;
import com.wanji.common.framework.rest.AbstractRestServer;
import com.wanji.common.framework.rest.impl.AbstractRestServerImpl;
import com.wanji.${package.ModuleName}.service.${entity}Provider;
import com.wanji.${package.ModuleName}.entity.${entity};
import com.wanji.common.framework.rest.Page;
import net.wanji.common.framework.Constants;
import net.wanji.common.framework.dubbointerface.BaseDubboInterface;
import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.common.framework.rest.AbstractRestServer;
import net.wanji.common.framework.dubbointerface.BaseDubboInterface;
import net.wanji.common.framework.exception.DubboProviderException;
import net.wanji.common.framework.i18n.I18nResourceBundle;
import net.wanji.common.framework.rest.AbstractRestServer;
import net.wanji.common.framework.rest.impl.AbstractRestServerImpl;
import net.wanji.${package.ModuleName}.service.${entity}Provider;
import net.wanji.${package.ModuleName}.entity.${entity};
import net.wanji.common.framework.rest.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......
......@@ -9,6 +9,7 @@ import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import net.wanji.opt.api.ResultGenerator;
<#if restControllerStyle>
<#else>
......@@ -31,20 +32,11 @@ import java.util.List;
* @since ${date}
*/
@Api(tags = "${table.comment!}")
<#if restControllerStyle>
@RestController
<#else>
@Controller
</#if>
@RequestMapping("<#if package.ModuleName??>/${package.ModuleName}</#if>/<#if controllerMappingHyphenStyle??>${controllerMappingHyphen}<#else>${table.entityPath}</#if>")
<#if kotlin>
class ${table.controllerName}<#if superControllerClass??> : ${superControllerClass}()</#if>
<#else>
<#if superControllerClass??>
public class ${table.controllerName} extends ${superControllerClass} {
<#else>
public class ${table.controllerName} {
</#if>
@Autowired
private ${table.serviceName} ${table.serviceName?uncap_first};
......@@ -91,5 +83,4 @@ public class ${table.controllerName} {
return ResultGenerator.genSuccessResult();
}
}
</#if>
\ No newline at end of file
}
\ No newline at end of file
package com.example.gernerator;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class GerneratorApplicationTests {
@Test
void contextLoads() {
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment