Session Enterprise JavaBeans (EJBs) са част от платформата Java EE (Jakarta EE) и представляват сървърни компоненти, които инкапсулират бизнес логиката на дадено Java приложение. Те се използват за изпълнение на специфични задачи и бизнес процеси и работят в контейнер, който управлява аспекти като сигурност, транзакции, създаване и унищожаване на обекти и др.
Основни характеристики на Session EJBs:
- Инкапсулират бизнес логика – предоставят методи, чрез които клиентите могат да изпълняват бизнес операции.
- Живеят само за определена сесия – съществуват, докато трае взаимодействието с клиента.
- Управлявани от контейнер – контейнерът се грижи за инстанцирането, сигурността, транзакциите и др.
Видове Session EJBs:
- Stateless Session Beans (Без състояние)
- Нямат състояние, специфично за клиент.
- Един и същ обект може да обслужва множество клиенти.
- Подходящи за повтаряеми задачи (напр. изчисления, изпращане на съобщения).
- Stateful Session Beans (Със състояние)
- Поддържат състояние между метод повиквания от един клиент.
- Създават се за конкретен клиент и съществуват, докато трае сесията.
- Подходящи за последователни операции, като пазарска количка.
- Singleton Session Beans
- Само една инстанция за цялото приложение.
- Подходящи за кеширане, конфигурации или глобални ресурси.
- Поддържат споделено състояние между клиентите.
Примерна употреба:
@Stateless
public class OrderProcessorBean {
public void processOrder(Order order) {
// Бизнес логика за обработка на поръчката
}
}
Предимства на Session EJBs:
- Управление на транзакции „out of the box“
- Декларативна сигурност
- Висока скалируемост и разширяемост
- Възможност за разпределени приложения (работят през мрежа)
Недостатъци:
- По-сложна конфигурация спрямо леки решения като Spring Beans
- Относително тежък подход за по-малки приложения