我的Service Bean示例
@Service("officeService")
@Transactional
public class OfficeService {
@Resource(name = "sessionFactory")
private SessionFactory sessionFactory;
@Transactional(readOnly=true)
public List<Office> getAllOffices(){
Session session = sessionFactory.getCurrentSession();
Criteria crit = session.createCriteria(Office.class);
crit.addOrder(Order.desc("name"));
return crit.list();
}
}
如果它不是线程安全的(或者不是已经线程安全的),它将是什么样?
并且,如果我所有的控制器和服务都是单例的,这是否意味着每个请求在需要时就简单地同时作用于单例?
最佳答案
如果您将类中的任何状态作为实例变量进行管理,那么它将不是线程安全的。由于您拥有的唯一状态是sessionFactory,只要它的getCurrentSession()方法是线程安全的(它是安全的),那么您的方法也是如此