访问servlet上下文中的对象时是否需要同步块?

时间:2017-08-06 16:00:40

标签: java servlets

我有一个访问和修改对象的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;
    }

1 个答案:

答案 0 :(得分:0)

Spring并没有做任何事情来保证bean的线程安全。

  

是否需要使用同步块显式锁定“myBean”,否则默认情况下会对其进行维护?

你的意图并不清楚你的例子。如果从bean中读取值,比较它然后更新,则需要显式锁定。如果它具有状态,则更好的选择是使myBean线程安全。