Commit c461d04b by fsn

模板方法模式重构模板引擎生成类

parent e2fe0ba4
package com.stylefeng.guns.core.template.engine;
import com.stylefeng.guns.core.template.engine.base.GunsTemplateEngine;
import com.stylefeng.guns.core.util.ToolUtil;
import org.beetl.core.Template;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
/**
* 通用的模板生成引擎
*
* @author fengshuonan
* @date 2017-05-09 20:32
*/
public class SimpleTemplateEngine extends GunsTemplateEngine {
@Override
protected void generatePageHtml() {
Template pageTemplate = groupTemplate.getTemplate("gunsTemplate/page.html.btl");
configTemplate(pageTemplate);
String pagePath = ToolUtil.format(super.getContextConfig().getProjectPath() + super.getPageConfig().getPagePathTemplate(),
super.getContextConfig().getBizEnName(),super.getContextConfig().getBizEnName());
File file = new File(pagePath);
File parentFile = file.getParentFile();
if(!parentFile.exists()){
parentFile.mkdirs();
}
try {
pageTemplate.renderTo(new FileOutputStream(file));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
System.out.println("生成页面成功!");
}
@Override
protected void generateController() {
Template controllerTemplate = super.groupTemplate.getTemplate("gunsTemplate/Controller.java.btl");
configTemplate(controllerTemplate);
String controllerPath = ToolUtil.format(super.getContextConfig().getProjectPath() + super.getControllerConfig().getControllerPathTemplate(),
ToolUtil.firstLetterToUpper(super.getContextConfig().getBizEnName()));
try {
controllerTemplate.renderTo(new FileOutputStream(controllerPath));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
System.out.println("生成控制器成功!");
}
}
package com.stylefeng.guns.core.template.engine;
package com.stylefeng.guns.core.template.engine.base;
import com.stylefeng.guns.core.template.config.ContextConfig;
import com.stylefeng.guns.core.template.config.ControllerConfig;
......
package com.stylefeng.guns.core.template.engine;
package com.stylefeng.guns.core.template.engine.base;
import com.stylefeng.guns.core.util.ToolUtil;
import org.beetl.core.Configuration;
......@@ -6,8 +6,6 @@ import org.beetl.core.GroupTemplate;
import org.beetl.core.Template;
import org.beetl.core.resource.ClasspathResourceLoader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
......@@ -17,9 +15,9 @@ import java.util.Properties;
* @author fengshuonan
* @date 2017-05-07 22:15
*/
public class GunsTemplateEngine extends AbstractTemplateEngine {
public abstract class GunsTemplateEngine extends AbstractTemplateEngine {
private GroupTemplate groupTemplate;
protected GroupTemplate groupTemplate;
public GunsTemplateEngine() {
initBeetlEngine();
......@@ -47,27 +45,13 @@ public class GunsTemplateEngine extends AbstractTemplateEngine {
template.binding("context", super.getContextConfig());
}
public void start() throws IOException {
//初始化控制器模板
Template controllerTemplate = groupTemplate.getTemplate("gunsTemplate/Controller.java.btl");
configTemplate(controllerTemplate);
String controllerPath = ToolUtil.format(super.getContextConfig().getProjectPath() + super.getControllerConfig().getControllerPathTemplate(),
ToolUtil.firstLetterToUpper(super.getContextConfig().getBizEnName()));
controllerTemplate.renderTo(new FileOutputStream(controllerPath));
System.out.println("生成控制器成功!");
//初始化主页面html
Template pageTemplate = groupTemplate.getTemplate("gunsTemplate/page.html.btl");
configTemplate(pageTemplate);
String pagePath = ToolUtil.format(super.getContextConfig().getProjectPath() + super.getPageConfig().getPagePathTemplate(),
super.getContextConfig().getBizEnName(),super.getContextConfig().getBizEnName());
File file = new File(pagePath);
File parentFile = file.getParentFile();
if(!parentFile.exists()){
parentFile.mkdirs();
}
pageTemplate.renderTo(new FileOutputStream(file));
System.out.println("生成页面成功!");
public void start() {
generateController();
generatePageHtml();
}
protected abstract void generatePageHtml();
protected abstract void generateController();
}
package com.stylefeng.guns.template;
import com.stylefeng.guns.core.template.config.ContextConfig;
import com.stylefeng.guns.core.template.engine.GunsTemplateEngine;
import com.stylefeng.guns.core.template.engine.SimpleTemplateEngine;
import com.stylefeng.guns.core.template.engine.base.GunsTemplateEngine;
import java.io.IOException;
......@@ -18,7 +19,7 @@ public class TemplateGenerator {
contextConfig.setBizChName("测试");
contextConfig.setBizEnName("test");
GunsTemplateEngine gunsTemplateEngine = new GunsTemplateEngine();
GunsTemplateEngine gunsTemplateEngine = new SimpleTemplateEngine();
gunsTemplateEngine.setContextConfig(contextConfig);
gunsTemplateEngine.start();
}
......
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