Я понял основную концепцию Thread в автономном приложении. Но, запутался в нижележащих областях.
1). В Java webapplication (сервлет и весна)?
Надеюсь, каждый запрос обрабатывается другим потоком. Это верно? Есть ли другое определение?
2). Что такое поток в Hibernate с Spring MVC? Запуск фабрики является потокобезопасным.. где в качестве объекта сеанса нет. Что здесь означает?
Пожалуйста, помогите мне понять это.
1) На сервере приложений есть пул потоков, когда приходит запрос, ему назначается поток из пула. Тот же поток вызывает диспетчерский сервлет, который вызывает контроллер, который вызывает службу и т.д., И, наконец, создает HttpResponse и отправляет его клиенту.
2) Обычный шаблон с Hibernate (если вы не используете сеансы Seam) - это сеанс за запрос:
2.4.2. Шаблон сеанса за запрос
Это наиболее распространенная схема транзакций. Термин запрос здесь относится к понятию системы, которая реагирует на ряд запросов от клиента/пользователя. Веб-приложения - яркий пример такого типа системы, хотя, конечно, не единственный. В начале обработки такого запроса приложение открывает сеанс Hibernate, запускает транзакцию, выполняет всю работу, связанную с данными, завершает транзакцию и закрывает сеанс. Суть шаблона - это взаимно однозначная взаимосвязь между транзакцией и сеансом.
Транзакция хранится Spring в переменной threadlocal. Таким образом, поток имеет сеанс Hibernate (который ограничен этим потоком) и связан с транзакцией (или стеком транзакций, поскольку они могут быть вложенными).