ConfigurationInstance.java 1.44 KB
package com.cjs.cms.util.file;

import java.io.File;
import java.net.URI;
import java.util.Locale;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import freemarker.template.Configuration;
import freemarker.template.DefaultObjectWrapper;

/**
 * FreeMarker工厂
 * 
 * @author trunks
 * @version $Id: ConfigurationInstance.java, v 0.1 2012-3-7 下午03:46:13 trunks
 *          Exp $
 */
public class ConfigurationInstance extends Configuration {

    private static ConfigurationInstance instance;
    private static Logger                logger = LogManager.getLogger(ConfigurationInstance.class);

    private ConfigurationInstance() {
        super();
    }

    /**
     * 获取FreeMarker实例<br>
     * 模板文件放在/resources/tpl目录下
     */
    public static synchronized ConfigurationInstance getInstance() {
        if (instance == null) {
            try {
                URI path = ConfigurationInstance.class.getResource("/ftl").toURI();
                instance = new ConfigurationInstance();
                instance.setOutputEncoding("UTF-8");
                instance.setLocale(Locale.CHINA);
                instance.setObjectWrapper(new DefaultObjectWrapper());
                instance.setDirectoryForTemplateLoading(new File(path));
            } catch (Exception e) {
                logger.error("初始化FreeMarker出错:" + e.getMessage());
            }
        }
        return instance;
    }
}