Spring boot 下Freemarker的注解方式配置

1.创建FreemarkerConfig使用@Configuration将Freemarker需要的配置注入
import javax.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;

//import com.gstar.acp.portal.directive.article.ArticleDirective;
//import com.gstar.acp.portal.directive.channel.ChannelListDirective;
//import com.gstar.acp.portal.directive.content.ContentListDirective;

import freemarker.template.TemplateException;

/**
 * @author chenmd
 *
 */
@Configuration
public class FreeMarkerConfig {

    @Autowired
    protected freemarker.template.Configuration configuration;
    @Autowired
    protected org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver resolver;
    @Autowired
    protected org.springframework.web.servlet.view.InternalResourceViewResolver springResolver;
    

    @PostConstruct
    public void  setSharedVariable(){
        configuration.setDateFormat("yyyy/MM/dd");

        configuration.setDateTimeFormat("yyyy-MM-dd HH:mm:ss");

        //下面三句配置的就是我自己的freemarker的自定义标签,在这里把标签注入到共享变量中去就可以在模板中直接调用了
        //configuration.setSharedVariable("content_list", new ContentListDirective());
        //configuration.setSharedVariable("article_list", new ArticleDirective());
        //configuration.setSharedVariable("channel_list", new ChannelListDirective());
        
        
        /**
         * setting配置
         */
        try {
            configuration.setSetting("template_update_delay", "1");
            configuration.setSetting("default_encoding", "UTF-8");
        } catch (TemplateException e) {
            e.printStackTrace();
        }
        
        
        /**
         * 配置Spring JSP的视图解析器
         */
        springResolver.setPrefix("/XXX/");//解析前缀后XXX路径下的jsp文件
        springResolver.setSuffix(".jsp");
        springResolver.setOrder(1);
        
        /**
         * 配置Freemarker视图解析器
         */
        resolver.setSuffix(".html"); //解析后缀为html的
        resolver.setCache(false); //是否缓存模板
        resolver.setRequestContextAttribute("request"); //为模板调用时,调用request对象的变量名
        resolver.setOrder(0);
        
       
        
    }
    
    

}

(注:以上就是Freemarker用注解的方式替代了以前的使用XML配置文件繁琐的配置方式,至于在pom.xml中引入freemarker的依赖,可以百度搜索 maven spring boot freemarker,添加到自己的pom.xml依赖中去就可以了)

2.下面说描述下pom.xml中需要添加的freemarker的依赖

	
		
			org.springframework.boot
			spring-boot-starter-freemarker
		
        

 
  OK,添加完依赖后更新maven project ,freemarker的配置就配置完成了,不用像以前一样配置繁琐的xml一大堆配置。 
  


你可能感兴趣的:(Freemarker学习)