在我的java web应用程序中,有一个操作可以更新订单对象并通过ajax调用(POST请求)将其保存在数据库中。
方法 saveOrder() 执行此操作, 如果多个用户执行相同的操作,则应该对该方法加锁,以便使用最新的数据执行写入事务。
类文件代码如下
public class OrderLoader extends JSONProcessSimple {
@override
public JSONObject exec(JSONObject jsonsent) throws JSONException, ServletException {
JSONObject result = this.saveOrder(array);
return result;
}
public JSONObject saveOrder(JSONArray jsonarray) throws JSONException {
JSONObject jsonResponse = new JSONObject();
//Write operation on DB
return jsonResponse;
}
}
是否可以通过同步方法,请建议我一个解决方案。
提前致谢!
最佳答案
根据您的应用程序的架构(它是否在集群环境中的多个并行实例中运行?),没有简单的解决方案;如果它仅在一个虚拟机中执行,synchronized
可能是一种方法。另外,请查看 java.util.concurrent.lock包。
对于更复杂的分布式方法,您可以实现基于数据库的锁。
关于java - 锁定java中的特定方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18784249/