6.10 Spring boot 整合

    JFinal Template Engine 的独立发布版本 Enjoy 只有 207K 大小,并且无任何第三方依赖。

    Spring boot 下整合配置如下:

    1. @Configurationpublic class SpringBootConfig {
    2. @Bean(name = "jfinalViewResolver") public JFinalViewResolver getJFinalViewResolver() {

    3. JFinalViewResolver jfr = new JFinalViewResolver();
    4. // 对 spring boot 进行配置
    5. jfr.setSuffix(".html");
    6. jfr.setContentType("text/html;charset=UTF-8");
    7. jfr.setOrder(0);
    8. // 获取 engine 对象,对 enjoy 模板引擎进行配置,配置方式与前面章节完全一样
    9. // 热加载配置能对后续配置产生影响,需要放在最前面
    10. engine.setDevMode(true);
    11. // 使用 ClassPathSourceFactory 从 class path 与 jar 包中加载模板文件
    12. engine.setToClassPathSourceFactory();
    13. // 在使用 ClassPathSourceFactory 时要使用 setBaseTemplatePath
    14. // 代替 jfr.setPrefix("/view/")
    15. // 添加模板函数
    16. engine.addSharedFunction("/common/_layout.html");
    17. engine.addSharedFunction("/common/_paginate.html");
    18. // 更多配置与前面章节完全一样
    19. // engine.addSharedMethod(...);
    20. }}

    如果从项目的 webapp 路径下加载模板文件则无需配置为 ClassPathSourceFactory。

    在 Spring mvc下整合 Enjoy 非常简单,只需要配置一个 bean 即可,如下是具体配置方式:

    1. <bean id="viewResolver" class="com.jfinal.template.ext.spring.JFinalViewResolver">
    2. <!-- 是否热加载模板文件 -->
    3. <property name="devMode" value="true"/>
    4. <!-- 配置shared function,多文件用逗号分隔 -->
    5. <property name="sharedFunction" value="/view/_layout.html, /view/_paginate.html"/>
    6.  
    7. <!-- 是否支持以 #(session.value) 的方式访问 session -->
    8. <property name="sessionInView" value="true"/>
    9. <property name="prefix" value="/view/"/>
    10. <property name="suffix" value=".html"/>
    11. <property name="order" value="1"/>
    12. </bean>

    更多、更详细的配置项及其说明,可以通过查看 JFinalViewResolver 头部的注释来了解,在绝大部分情况下,上面的配置项可以满足需求。