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.ContextConfig;
import com.stylefeng.guns.core.template.config.ControllerConfig; 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 com.stylefeng.guns.core.util.ToolUtil;
import org.beetl.core.Configuration; import org.beetl.core.Configuration;
...@@ -6,8 +6,6 @@ import org.beetl.core.GroupTemplate; ...@@ -6,8 +6,6 @@ import org.beetl.core.GroupTemplate;
import org.beetl.core.Template; import org.beetl.core.Template;
import org.beetl.core.resource.ClasspathResourceLoader; import org.beetl.core.resource.ClasspathResourceLoader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.util.Properties; import java.util.Properties;
...@@ -17,9 +15,9 @@ import java.util.Properties; ...@@ -17,9 +15,9 @@ import java.util.Properties;
* @author fengshuonan * @author fengshuonan
* @date 2017-05-07 22:15 * @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() { public GunsTemplateEngine() {
initBeetlEngine(); initBeetlEngine();
...@@ -47,27 +45,13 @@ public class GunsTemplateEngine extends AbstractTemplateEngine { ...@@ -47,27 +45,13 @@ public class GunsTemplateEngine extends AbstractTemplateEngine {
template.binding("context", super.getContextConfig()); template.binding("context", super.getContextConfig());
} }
public void start() throws IOException { public void start() {
//初始化控制器模板 generateController();
Template controllerTemplate = groupTemplate.getTemplate("gunsTemplate/Controller.java.btl"); generatePageHtml();
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("生成页面成功!");
} }
protected abstract void generatePageHtml();
protected abstract void generateController();
} }
package com.stylefeng.guns.template; package com.stylefeng.guns.template;
import com.stylefeng.guns.core.template.config.ContextConfig; 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; import java.io.IOException;
...@@ -18,7 +19,7 @@ public class TemplateGenerator { ...@@ -18,7 +19,7 @@ public class TemplateGenerator {
contextConfig.setBizChName("测试"); contextConfig.setBizChName("测试");
contextConfig.setBizEnName("test"); contextConfig.setBizEnName("test");
GunsTemplateEngine gunsTemplateEngine = new GunsTemplateEngine(); GunsTemplateEngine gunsTemplateEngine = new SimpleTemplateEngine();
gunsTemplateEngine.setContextConfig(contextConfig); gunsTemplateEngine.setContextConfig(contextConfig);
gunsTemplateEngine.start(); 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