主题:Template t = gt.getTemplate();加载慢原因

lius 2018年09月06日 66

在使用Template t = gt.getTemplate()加载本地模板时候浪费大量的时间进行加载,怎么提高加载效率

闲大赋 2018年09月06日

浪费大量时间,何以见得?

lius 2018年09月07日

表达不太清楚,不是浪费时间,是速度比较慢,有没有提高加载速度的办法,

闲大赋 2018年09月07日

按理说第一次慢,后来缓存了应该很快,你有没有具体例子,或者你写个简单工程放到git上,我拿下来跑跑

lius 2018年09月07日

好的,我下午写一个Demo

lius 2018年09月07日

我已经在GitHub上面创建项目,麻烦您了

https://github.com/LiuSandy/Beerl-Demo.git

闲大赋 2018年09月07日

你是说Contorller的loadFile() 执行慢吧,我看你的代码,每次都会创建一个GroupTemplate,这是一个重量级对象,事实上应该整个应用保证一个。你这个不是使用Beetl的正确方式。你不但每次都初始化模板,而且还是初始化GroupTemplate!查看官网SpringBoot如何使用Beetl,或者例子 https://gitee.com/xiandafu/Spring-Boot-2.0-Samples/tree/master/4_views/ch4.beetl

你已经集成了Beetl,只需要直接返回视图名称就可以交给Beetl渲染了,或者,你只为测试性能,可以这么干

@Controller
public class IndexController {
    @Autowired GroupTemplate gt;
    @RequestMapping(value = "/")
    public ModelAndView index() {
        ModelAndView modelAndView = new ModelAndView("index");
        return modelAndView;
    }


    @RequestMapping(value = "/loadFile")
    @ResponseBody
    public String loadFile() {
        //使用已经配置好的GroupTemplate
        Template t = gt.getTemplate("loadFile.xml");
        long endTime = System.currentTimeMillis();
        t.binding("id", "10");
        t.binding("data", "ksksksa");
        t.binding("name", "BeetlDemo");
        t.binding("role", "超级管理员");
        t.binding("password", "forgetPassword");
        String str = t.render();
        System.out.println(str);
        return "加载本地资源耗时" + (endTime - startTime) + "ms";
    }


}
lius 2018年09月10日

如果是spring MVC 框架呢?也是这么配置吗?我在springMVC里面加载本地模板,也是这么写的。

闲大赋 9天前

官网关于spring 的配置和使用方式很清楚了,也给你例子了,按照例子来吧

lius 9天前

你给我的那个例子运行不起来,出现Whitelabel Error Page