боб синглтопа весной, как сделать его безопасным - PullRequest
0 голосов
/ 25 ноября 2011

Пример моего служебного компонента

@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 Ответ

3 голосов
/ 25 ноября 2011

Если вы управляете каким-либо состоянием в классе как переменными экземпляра, тогда это не будет потокобезопасным.Поскольку единственное состояние, которое у вас есть, это sessionFactory, если его метод getCurrentSession () является потокобезопасным (что и есть), то и ваш метод

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...