gpt4 book ai didi

java - spring 中的单例作用域 bean,我如何使其成为非线程安全

转载 作者:行者123 更新时间:2023-12-02 00:34:05 25 4
gpt4 key购买 nike

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

如果它不是线程安全的(或者还不是),它会是什么样子?

如果我所有的 Controller 和服务都是单例,这是否意味着每个请求只需在需要时同时作用于单例?

最佳答案

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

关于java - spring 中的单例作用域 bean,我如何使其成为非线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8269358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com