spring boot 咱們都知道是一個簡化配置的服務,省去繁瑣的xml配置,以properties和yml還有 註解形式來替代以前的xml配置。html
咱們首先實現spring boot 對freemarker的支持,引入pom前端
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency>
在yml中添加配置項:java
spring: freemarker: template-loader-path: classpath:/ftl/
classpath後面爲前綴。也能夠在註解配置類中實現git
新建配置類:FreeMarkerConfig.javaweb
import com.jagregory.shiro.freemarker.ShiroTags; import freemarker.template.TemplateException; import freemarker.template.TemplateModelException; import java.io.IOException; import java.util.Properties; import javax.annotation.PostConstruct; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.ui.freemarker.FreeMarkerConfigurationFactory; import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer; import org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver; /** * @author zhuxiaomeng * @date 2018/1/2. * @email 154040976@qq.com */ @Configuration public class FreeMarkerConfig { @Bean public ViewResolver viewResolver() { FreeMarkerViewResolver resolver = new FreeMarkerViewResolver(); resolver.setCache(false); resolver.setViewClass(org.springframework.web.servlet.view.freemarker.FreeMarkerView.class); resolver.setRequestContextAttribute("re"); resolver.setExposeSpringMacroHelpers(true); resolver.setExposeRequestAttributes(true); resolver.setExposeSessionAttributes(true); resolver.setSuffix(".ftl"); resolver.setContentType("text/html; charset=UTF-8"); return resolver; } @Bean public FreeMarkerConfigurer freemarkerConfig() throws IOException, TemplateException { FreeMarkerConfigurationFactory factory = new FreeMarkerConfigurationFactory(); factory.setTemplateLoaderPaths("classpath:/ftl/", "src/main/resources/ftl"); factory.setDefaultEncoding("UTF-8"); FreeMarkerConfigurer result = new FreeMarkerConfigurer(); freemarker.template.Configuration configuration = factory.createConfiguration(); configuration.setClassicCompatible(true); result.setConfiguration(configuration); Properties settings = new Properties(); settings.put("template_update_delay", "0"); settings.put("default_encoding", "UTF-8"); settings.put("number_format", "0.##########"); settings.put("datetime_format", "yyyy-MM-dd HH:mm:ss"); settings.put("classic_compatible", true); settings.put("template_exception_handler", "ignore"); result.setFreemarkerSettings(settings); return result; } }
setRequestContextAttribute:設置屬性名稱,爲freemarker前端 RequestContext 的別名spring
本人已經在開源框架lenos中實現,若是你感興趣,或者須要幫助,能夠下載學習:框架
地址:https://gitee.com/bweird/lenosp spring-boot
lenos是一款快速開發腳手架,不只有定時任務,還有權限管理,日誌監控等其餘技術,若是你喜歡 別忘記點個star,謝謝。若是有疑問,能夠在lenos:137738503下加羣詢問。學習