提问人:Matej Hudak 提问时间:11/16/2023 更新时间:11/16/2023 访问量:19
使用 parallelStream 的 SpringTemplateEngine 进程
SpringTemplateEngine process with parallelStream
问:
我正在尝试在 java 中使用并行流处理多个 thymeleaf 模板。 我正在使用 springboot 2.7.17 和 thymeleaf-spring5 3.0.15 和 java 17。
问题是我会得到多个: SpelEvaluationException:EL1011E:方法调用:尝试在空上下文对象上调用方法“xy”,其中 xy 是任何函数,例如 #lists.isEmpty、#strings.equals 等。
以下是 SpringTemplateEngine 配置:
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.addTemplateResolver(defaultTemplateResolver());
templateEngine.setEnableSpringELCompiler(true);
HashSet<IDialect> additionalDialects = new HashSet<>(Arrays.asList(
new LayoutDialect(),
new CgDialect(),
new StripWhitespaceDialect(),
new GaDialect()));
templateEngine.setAdditionalDialects(additionalDialects);
templateEngine.setMessageResolver(new SpringMessageResolver());
templateEngine.setMessageSource(messageSource);
以下是我如何配置我的 WebContext:
WebContext ctx = new WebContext(pageModel.getRequest(), pageModel.getResponse(), context, pageModel.getLocale());
ctx.setVariables(pageModel.getModel());
ctx.setVariable(ThymeleafEvaluationContext.THYMELEAF_EVALUATION_CONTEXT_CONTEXT_VARIABLE_NAME, new ThymeleafEvaluationContext(applicationContext, new DefaultFormattingConversionService()));
RequestContext requestContext = new RequestContext(pageModel.getRequest(), pageModel.getResponse(), context, pageModel.getModel());
ctx.setVariable(SpringContextVariableNames.SPRING_REQUEST_CONTEXT, requestContext);
SpringWebMvcThymeleafRequestContext thymeleafRequestContext = new SpringWebMvcThymeleafRequestContext(requestContext, pageModel.getRequest());
ctx.setVariable(SpringContextVariableNames.THYMELEAF_REQUEST_CONTEXT, thymeleafRequestContext);
这就是执行:
templateList.parallelStream().forEach(templateName -> {
System.out.println(templateEngine.process(templateName, ctx));
});
WebContext 具有它需要的所有变量,如果我在没有 parallelStream 的情况下按顺序运行它,则此代码有效。
我希望并行流能够更快地呈现多个结果。
我不明白的是: 如果我为流程方法的每次执行传递相同的上下文,为什么模板没有上下文? Spring 模板引擎是否打算在多个线程上使用?
感谢您的任何建议和帮助。
答: 暂无答案
上一个:JMeter 属性并发写入
下一个:增加线程数会使程序变慢
评论