【问题标题】:Thymeleaf | Is TemplateEngine.process thread-safe operation?百里香叶 | TemplateEngine.process 是线程安全的操作吗?
【发布时间】:2014-04-11 07:45:18
【问题描述】:

我使用thymeleaf 模板引擎来构建对 SOAP 服务的请求。执行发送的类如下所示:

import java.io.StringReader;
import java.util.*;
import javax.xml.transform.stream.*;

import org.springframework.ws.client.core.WebServiceTemplate;

import org.thymeleaf.*;
import org.thymeleaf.context.*;
import org.thymeleaf.templateresolver.*;

public class SomeService 
{
    private final TemplateEngine templateEngine;
    private final WebServiceTemplate webServiceTemplate;

    public RetrieveServiceThymeleafBased() {
        webServiceTemplate = new WebServiceTemplate();
        webServiceTemplate.setDefaultUri("http://some.path/to/soap/service");

        ITemplateResolver templateResolver = new ClassLoaderTemplateResolver();
        templateEngine = new TemplateEngine();
        templateEngine.addTemplateResolver(templateResolver);
    }

    public void sendMessage(String orderNumber) {
        Context params = new Context();
        params.setVariable("CreateDateTime", new Date());
        params.setVariable("GUID", UUID.randomUUID());
        String xmlContent = templateEngine.process("template.xml", params);

        StreamSource source = new StreamSource(new StringReader(xmlContent));
        StreamResult result = new StreamResult(System.out);
        webServiceTemplate.sendSourceAndReceiveToResult(source, result);
    }
}

我知道webServiceTemplate.sendSourceAndReceiveToResult - 是线程安全的操作,但是我找不到关于templateEngine.process的这种信息

问题:templateEngine.process 是否是线程安全操作

【问题讨论】:

    标签: java multithreading thread-safety thymeleaf


    【解决方案1】:

    是的,是的。 TemplateEngine 对象被设计用于高并发环境中没有问题(我希望!;))。

    免责声明,根据 StackOverflow 规则:我是 Thymeleaf 的作者。

    【讨论】:

    • 很高兴听到它,但是,由于 Thymeleaf 和 Spring 的复杂交织,事情发生了 - Thymeleaf concurency error....... 所以,要小心
    • 在 javadoc 中有一个小评论。那是我寻找线程安全/并发的第一个信息。提到实例化是昂贵的。下一个想法是“使用单例”,下一个想法是“线程安全”...
    猜你喜欢
    • 1970-01-01
    • 2016-08-14
    • 2015-11-29
    • 1970-01-01
    • 2016-09-17
    • 1970-01-01
    • 2017-04-05
    • 2015-12-09
    相关资源
    最近更新 更多