春天的单身作品豆,我怎么能让它非线程安全

时间:2011-11-25 12:46:59

标签: java multithreading spring singleton

我的服务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();
    }
}

如果它不是线程安全的(或者不是它已经存在)会是什么样子?

如果我的所有控制器和服务都是单身人士,这是否意味着每个请求只在需要时同时对单身人员起作用?

1 个答案:

答案 0 :(得分:3)

如果您将类中的任何状态作为实例变量进行管理,那么它将不是线程安全的。因为你拥有的唯一状态是sessionFactory,只要它的getCurrentSession()方法是线程安全的(它就是),那么你的方法也是如此