我在支持bean中有一个方法,可以将产品添加到db中。它检查产品是否重复。然而,这是一个缓慢的过程,并且JSF UI可以同时触发多个请求,并且由于多个线程同时运行此应用程序而在db中添加内容时无法检查重复。什么是使这个方法线程安全的最佳方法。把它作为同步方法?
public int addProduct(final ActionEvent event){
// check duplicates code....long process
// insert product in db code....long process
}
答案 0 :(得分:2)
在以下情况下不要使它synchronized
- 它将无效(请求范围的bean)或将终止您的应用程序(应用程序范围的bean)。对于会话范围的bean,它不会有明显的副作用。
但通常反击的方法是禁用触发请求的UI组件。