Uso il motore modello thymeleaf
per compilare la richiesta al servizio SOAP. La classe che effettua l'invio di aspetto simile a questo:Thymeleaf | L'operazione thread-safe di TemplateEngine.process è?
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);
}
}
so che webServiceTemplate.sendSourceAndReceiveToResult
- è il funzionamento thread-safe, ma non riesco a trovare questo tipo di informazioni su templateEngine.process
Domanda: templateEngine.process
una filettatura operazione sicura o no
Wow! Grazie! – CAMOBAP
È bello sentirlo, ma, poiché si tratta di un intreccio abbastanza complesso di Thymeleaf e Spring, accadono le cose: [Errore di concentricità Thymeleaf ...] (https://github.com/thymeleaf/thymeleaf-spring/issues/83). ... Quindi, sii prudente –
Hai un piccolo commento in javadoc. Questa è stata la prima informazione che cercavo thread-safe/concurrent. Si dice che l'istanziazione è costosa. Il pensiero successivo è quindi 'usare un singleton' il prossimo pensiero è quindi è 'filettatura di sicurezza' ... –