参考 https://juejin.im/post/5caed4e4e51d456e27504b80
这是一个单体应用,使用springboot框架集成druid,redis,spring security,是一个最佳实践的框架,可以基于这个框架开发出不同的springboot项目。
1. mybatis-plus自动生成代码
#此处为本项目src所在路径(代码生成器输出路径)
outputDir=/chins-springboot-core/src/main/java
#父的包名
setParent=com.chins.springboot.core
#是否覆盖文件 默认是false 如果生成的代码有改动的话 在没有确认之前不要改成true 否则会把文件覆盖 丢失代码
fileOverride=false
#数据库地址
url=jdbc:mysql://192.168.0.102:3306/chins_springboot?useUnicode=true&characterEncoding=UTF-8&useSSL=false
#数据库驱动
driverClass=com.mysql.cj.jdbc.Driver
#数据库用户名
userName=root
#数据库密码
passWord=123456
public class CodeGenerator {
/**
* 获取控制台上的内容
*
* @param tip 控制台输入的内容
*/
public static String scanner(String tip) {
Scanner scanner = new Scanner(System.in);
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("请输入" + tip + ":");
System.out.println(stringBuilder.toString());
if (scanner.hasNext()) {
String ipt = scanner.next();
if (StringUtils.isNotEmpty(ipt)) {
//输入的不是空就返回
return ipt;
}
}
throw new MybatisPlusException("请输入正确的" + tip + "! ");
}
public static void main(String[] args) {
ResourceBundle resource = ResourceBundle.getBundle("myBatisPlus");
String outPutDir = resource.getString("outputDir");
Boolean fileOverride = false;
if ("true".equals(resource.getString("fileOverride"))) {
fileOverride = true;
}
String url = resource.getString("url");
String driverClass = resource.getString("driverClass");
String userName = resource.getString("userName");
String passWord = resource.getString("passWord");
String setParent = resource.getString("setParent");
// String mapperPath = resource.getString("mapperPath");
//代码生成器
AutoGenerator mpg = new AutoGenerator();
//全局配置
GlobalConfig gc = new GlobalConfig();
//生成的文件输出到哪
String projectPath = System.getProperty("user.dir");
gc.setOutputDir(projectPath + outPutDir);
//默认主键生成策略为uuid
// AUTO(0),
// NONE(1),
// INPUT(2),
// ID_WORKER(3),
// UUID(4),
// ID_WORKER_STR(5)
gc.setIdType(IdType.AUTO);
gc.setOpen(false);
gc.setFileOverride(fileOverride);
gc.setAuthor("chins");
gc.setBaseColumnList(true);
gc.setBaseResultMap(true);
gc.setEntityName("%sEntity");
gc.setMapperName("%sDao");
gc.setServiceName("%sService");
gc.setServiceImplName("%sServiceImpl");
gc.setControllerName("%sController");
mpg.setGlobalConfig(gc);
//gc.setIdType(IdType.UUID);
//是否开启Swagger2
//gc.setSwagger2(true);
//gc.setXmlName("%sDaoMapper");
//数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setDbType(DbType.MYSQL);
dsc.setUrl(url);
dsc.setDriverName(driverClass);
dsc.setUsername(userName);
dsc.setPassword(passWord);
mpg.setDataSource(dsc);
//包配置
PackageConfig pc = new PackageConfig();
pc.setParent(setParent);
pc.setMapper("dao")
.setService("service")
.setController("controller")
.setEntity("entity");
mpg.setPackageInfo(pc);
//策略配置
StrategyConfig strategy = new StrategyConfig();
//下划线到驼峰的命名方式
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
//使用lombok
strategy.setEntityLombokModel(true);
strategy.setRestControllerStyle(true);
strategy.setInclude(scanner("表名"));
strategy.setControllerMappingHyphenStyle(true);
mpg.setStrategy(strategy);
mpg.execute();
}
}
注意:此处要在common的pom中手动添加代码生成器的依赖,和模板依赖,我这里使用默认的velocity模板
<dependencies>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.1</version>
</dependency>
</dependencies>
2. 运行主函数,可以看到成功生成了代码
我这里userMapper.xml的位置有点问题,没有生成在resource下面,我手动移动一下了。
网友评论