• 6.10 Spring整合
    • 1、maven 坐标
    • 2、Spring MVC整合
    • 3、Spring Boot整合

    6.10 Spring整合

    1、maven 坐标

    Spring 整合可以在pom.xml中配置 jfinal 坐标,也可以配置 Enjoy Template Engine 的独立发布版本坐标,其 maven 坐标如下:

    1. <dependency>
    2. <groupId>com.jfinal</groupId>
    3. <artifactId>enjoy</artifactId>
    4. <version>4.3</version>
    5. </dependency>

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

    2、Spring MVC整合

    在 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. <property name="contentType" value="text/html; charset=utf-8"/>
    13. </bean>

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

    3、Spring Boot整合

    Spring boot 下整合配置如下:

    @Configurationpublic class SpringBootConfig {  @Bean(name = "jfinalViewResolver")  public JFinalViewResolver getJFinalViewResolver() {    JFinalViewResolver jfr = new JFinalViewResolver();    // setDevMode 配置放在最前面    jfr.setDevMode(true);

    // 使用 ClassPathSourceFactory 从 class path 与 jar 包中加载模板文件
    jfr.setSourceFactory(new ClassPathSourceFactory());
    
    // 在使用 ClassPathSourceFactory 时要使用 setBaseTemplatePath
    // 代替 jfr.setPrefix(&#34;/view/&#34;)
    JFinalViewResolver.engine.setBaseTemplatePath(&#34;/view/&#34;);
    
    jfr.setSuffix(&#34;.html&#34;);
    jfr.setContentType(&#34;text/html;charset=UTF-8&#34;);
    jfr.setOrder(0);
    jfr.addSharedFunction(&#34;/view/common/_layout.html&#34;);
    jfr.addSharedFunction(&#34;/view/common/_paginate.html&#34;);
    return jfr;
    

    }}

    如上所示,jfr.setSourceFactory(…) 配置的 ClassPathSourceFactory 将从class path和jar包中加载模板文件。jfr.addSharedFunction(…) 配置共享模板函数。

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