- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在很多地方都看到过推荐的构建器模式,但不确定使用 Struts 的 Web 应用程序中的线程安全性。
我不清楚 build
静态方法的变量是由调用构建器代码的每个线程共享还是内部变量。我有预感这没问题,但想确定一下,因为构建器代码位于 Web 应用程序内部,并且可以同时由 10 个线程调用。
public static class ExampleBuilder {
public static Thing build(ActionForm form) {
String property1 = form.property1;
String property2 = form.property2;
String propertyX = form.propertyX;
...
return new Thing(property1, ...);
}
}
public class ExampleStrutsAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
Thing example = ExampleBuilder.build(form)
return mapping.findForward("success");
}
}
最佳答案
上面的build()
方法仅使用局部变量,并且不访问线程之间共享的任何状态,因此它是线程安全的。局部变量对于每个方法调用都是局部的,因此不在线程之间共享。
唯一可能遇到的线程安全问题是表单是否具有session
范围(这是一个不好的做法)。在这种情况下,两个线程可以使用相同的 ActionForm 实例。但这实际上并不是 build()
方法的问题。相反,这是一个设计问题,或者是使用此 session 范围 ActionForm 的 execute()
方法的同步问题。
关于java - Struts ActionServlet 中的静态构建器类线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13125615/
我在很多地方都看到过推荐的构建器模式,但不确定使用 Struts 的 Web 应用程序中的线程安全性。 我不清楚 build 静态方法的变量是由调用构建器代码的每个线程共享还是内部变量。我有预感这没问
我使用的是 Webshpere 7,我的 Java 版本是 1.6。我的Struts版本是1.1。当我启动服务器时,出现以下错误: com.ibm.ws.webcontainer.servlet.Se
谁能告诉我应该扩展 ActionServlet 和 RequestProcessor 类的场景?我在Struts文档中看到可以做到,但我不明白在什么情况下。 最佳答案 ActionServlet 和
我得到以下 Tomcat 错误: Sep 09, 2012 3:27:48 PM org.apache.catalina.core.AprLifecycleListener init Informat
我们正在 WAS6 中部署 Struts 应用程序。初始化时我们收到如下错误: org.apache.struts.util.PropertyMessageResources Initializin
我是一名优秀的程序员,十分优秀!