我有一个访问和修改对象的servlet" myBean"存储在servlet上下文中。明确锁定" myBean"需要同步块还是默认维护?示例代码:
public class StopFilesMergeServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) {
MYBean myBean = req.getServletContext().getAttribute("myBean");
synchronized (myBean) { //is this necessary?
int oldValue = myBean.getProperty1();
int newValue = oldValue + 10;
myBean.setProperty1(newValue);
}
...
return;
}
答案 0 :(得分:0)
Spring并没有做任何事情来保证bean的线程安全。
是否需要使用同步块显式锁定“myBean”,否则默认情况下会对其进行维护?
你的意图并不清楚你的例子。如果从bean中读取值,比较它然后更新,则需要显式锁定。如果它具有状态,则更好的选择是使myBean
线程安全。