package com.ai.tech.template;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import javax.annotation.PostConstruct;
import java.io.File;
import java.util.Map;
/**
* @Classname MavenTemplate
* @Description TODO
* @Date 4/25/2020 11:31 AM
* @Created by jason.yan
*/
@Slf4j
public abstract class MavenTemplate implements Template {
protected Configuration config;
@Autowired
protected Environment environment;
@PostConstruct
public void initProperties() {
log.info("初始化模板外部属性配置文件");
try {
this.config = new PropertiesConfiguration("template.properties");
} catch (ConfigurationException e) {
log.error(e.getMessage(), e);
}
}
@Override
public String getPackage(Map<String, Object> context) {
String basePackage = (String) context.get("basePackage");
if (!basePackage.endsWith(".")) {
basePackage += ".";
}
String templatePackage = config.getString(this.getNameSpace() + ".package");
if (templatePackage.startsWith(".")) {
templatePackage = templatePackage.substring(1);
}
return basePackage + templatePackage;
}
@Override
public String getOutputFile(Map<String, Object> context) {
String templatePackage = this.getPackage(context);
return getRootPath(this.getFileName())
+ "/"
+ templatePackage.replace(".", File.separator)
+ "/"
+ getGenertorFileName(context);
}
@Override
public String getGenertorFileName(Map<String, Object> context) {
String fileName = config.getString(getNameSpace() + ".namingRule");
// {className} 占位符处理
if (fileName.contains("{className}")) {
fileName = fileName.replace("{className}",
formatOutputFileNameValue(fileName, context));
}
// %s 占位符处理
if (fileName.contains("%s")) {
fileName = String.format(fileName, formatOutputFileNameValue(fileName, context));
}
return fileName;
}
/**
* 格式化替换文件名中的{className}
* 不同的文件生成命名规则可以通过子类重写返回的value值实现
* @param propertiesConfigFileName
* @param context
* @return
*/
protected String formatOutputFileNameValue(String propertiesConfigFileName,
Map<String, Object> context) {
return (String) context.get("className");
}
@Override
public String getTemplatePath(Map<String, Object> context) {
return config.getString(getNameSpace() + ".templatePath");
}
@Override
public boolean isEnabled() {
try {
return config.getBoolean(getNameSpace() + ".enabled");
} catch (Exception e) {
log.error(e.getMessage(), e);
}
return false;
}
@Override
public int getOrder() {
return config.getInt(getNameSpace() + ".order", Integer.MAX_VALUE/2);
}
/**
* 模板渲染完成后处理
* @param context
*/
@Override
public void before(Map<String, Object> context) {
String basePackage = (String) context.get("basePackage");
if (!basePackage.endsWith(".")) {
basePackage += ".";
}
// 包名处理
String nameSpace = getNameSpace();
String nameSpacePackage = config.getString(nameSpace + ".package");
if (nameSpacePackage.startsWith(".")) {
nameSpacePackage = nameSpacePackage.substring(0);
}
context.put(nameSpace + "Package", basePackage + nameSpacePackage);
String nameingRule= config.getString(nameSpace + ".namingRule");
// 去掉拓展名
nameingRule = nameingRule.substring(0, nameingRule .lastIndexOf("."));
String componentServiceName = nameingRule.replace("{className}",
(String) context.get("className"));
context.put(nameSpace + "Name", componentServiceName);
// 赋值 注入变量名
context.put(nameSpace + "AutoName", smallHump(componentServiceName));
// 追加模板赋值处理
setData(context);
}
protected String smallHump(String source) {
char[] chars = new char[1];
chars[0] = source.charAt(0);
String temp = new String(chars);
if (chars[0] >= 'A' && chars[0] <= 'Z') {
return source.replaceFirst(temp, temp.toLowerCase());
}
return source;
}
/**
* 空实现
* 子类重写 赋值数据
* @param context
*/
protected void setData(Map<String, Object> context) {
}
protected String getRootPath(String fileName) {
if ("java".equalsIgnoreCase(fileName)) {
return "src/main/java";
}
return "src/main/resources";
}
protected String getRootPath() {
return "src/main/resources";
}
protected boolean isEnabledFromTemplateProperties(String key) {
try {
return config.getBoolean(key);
} catch (Exception e) {
log.error(e.getMessage(), e);
}
return false;
}
protected abstract String getFileName();
}
没有合适的资源?快使用搜索试试~ 我知道了~
springboot + mybatis plus + vue代码生成器.rar
共157个文件
java:53个
ds_store:24个
js:15个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 174 浏览量
2023-01-25
20:23:56
上传
评论
收藏 1.01MB RAR 举报
温馨提示
干货分享,减少重复劳动,让工作更专注,为提高开发效率而出的代码生成器,支持mysql,sqlserver,oracle 等主流数据库,单表增删改查一键生成,大家可随意修改模版来满足你的需要。
资源推荐
资源详情
资源评论
收起资源包目录
springboot + mybatis plus + vue代码生成器.rar (157个子文件)
.classpath 1KB
bootstrap.min.css 118KB
AdminLTE.min.css 88KB
all-skins.min.css 40KB
font-awesome.min.css 30KB
ui.jqgrid-bootstrap.css 19KB
ui.jqgrid.css 17KB
layer.css 14KB
layer.css 5KB
style.css 3KB
main.css 1KB
ui.jqgrid-bootstrap-ui.css 692B
.DS_Store 8KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
._.DS_Store 120B
._.DS_Store 120B
._.DS_Store 120B
._.DS_Store 120B
._.DS_Store 120B
._.DS_Store 120B
._.DS_Store 120B
._.DS_Store 120B
._.DS_Store 120B
._.DS_Store 120B
._.DS_Store 120B
._.DS_Store 120B
fontawesome-webfont.eot 162KB
glyphicons-halflings-regular.eot 20KB
loading-0.gif 6KB
loading-2.gif 2KB
loading-1.gif 701B
index.html 4KB
generator.html 1KB
main.html 444B
favicon.ico 8KB
biz-solution-generator.iml 12KB
MavenTemplate.java 6KB
MysqlCalculator.java 4KB
VelocityUtils.java 4KB
GenUtils.java 3KB
ConvertTemplate.java 3KB
GaePythonCalculator.java 3KB
GlobalCalculator.java 2KB
SysGeneratorService.java 2KB
BlobTypeHandler.java 2KB
SysGeneratorController.java 2KB
ColumnEntity.java 2KB
PageUtils.java 2KB
RRExceptionHandler.java 2KB
DbConfig.java 1KB
BaseCalculatorContext.java 1KB
TableEntity.java 1KB
PythonTemplate.java 1KB
DataTemplate.java 1KB
GeneratorDao.java 1024B
ServiceImplTemplate.java 1023B
Query.java 1015B
R.java 977B
RRException.java 924B
CalculatorContextInit.java 885B
SpringBeanFactory.java 833B
DateUtils.java 760B
ResourcesTemplate.java 727B
SpringBootCalculator.java 718B
FireStoreTemplate.java 715B
Template.java 609B
ModelTemplate.java 566B
MenuSqlTemplate.java 546B
FacadeTemplate.java 471B
DataBaseCalculator.java 469B
CalculatorContext.java 457B
TemplateDelegate.java 434B
GeneratorApplication.java 402B
IndexVueTemplate.java 395B
AddOrUpdateVueTemplate.java 382B
XmlMapperTemplate.java 372B
ControllerTemplate.java 369B
ServiceTemplate.java 363B
DaoTemplate.java 355B
GeneratorApplicationTests.java 346B
JavaTemplate.java 346B
PostgreSQLGeneratorDao.java 240B
SQLServerGeneratorDao.java 238B
MySQLGeneratorDao.java 235B
OracleGeneratorDao.java 232B
._GeneratorApplicationTests.java 176B
._SysGeneratorController.java 176B
._GeneratorApplication.java 176B
Constant.java 156B
jquery.jqGrid.min.js 328KB
共 157 条
- 1
- 2
资源评论
- xiaohuage_java2023-04-13这个资源内容超赞,对我来说很有价值,很实用,感谢大佬分享~
HappyGirl快乐女孩
- 粉丝: 1w+
- 资源: 4160
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功