Я также хотел бы знать, почему объединяются EJB без сохранения состояния.Но я хочу знать, почему они объединяются, а не создаются и уничтожаются по требованию.Тот факт, что экземпляры могут быть повторно использованы для несвязанных запросов, значительно усложняет реализацию bean-компонентов без сохранения состояния (это означает, что вы должны быть невероятно осторожны с использованием полей экземпляров), и я не вижу в этом никакого существенного преимущества.
В частности, я не вижу каких-либо преимуществ для производительности.Я изучил реализацию bean-компонентов без сохранения состояния в JBoss (6, IIRC), и это единственный экземпляр компонента, который был объединен;сантехника для обработки вызова метода воссоздается с нуля при каждом использовании.Это означает, что единственное сохранение производительности - это создание одного объекта, что должно быть тривиальным периодом времени.Единственная ситуация, в которой я вижу, что это нетривиально, - это если бин получает тяжелые ресурсы и удерживает их между вызовами.Однако в этом случае бин действительно используется как прославленный, плохо управляемый пул;правильное решение - объединить ресурс напрямую!
Теперь EJB существует уже давно.Когда они только появились, создание объектов было дорогостоящим, поэтому имело смысл объединить их.Но эти дни давно прошли.Почему пул не был сброшен в EJB3?