2016-02-18 2 views
-1

У меня есть некоторые основные вопросы по EJB (в свете EE 7).Выбор класса внутри контейнера EJB

Вот иерархия классов:

public class Class1 {}; 
public class Class2 extends Class1 {}; 
public class Class3 extends Class1 {}; 
public class Class4 extends Class3 {}; 

Я хотел бы сделать EJB из Class4. Итак,

  • Нужно ли превращать Class1 - суперкласс в EJB или я могу просто превратить Class4 в один?
  • Имеет ли значение, если Class1 является абстрактным или конкретным?
  • Если я превращаю Class1 в EJB, все его подклассы становятся EJB?
  • Является ли каждый класс в этой иерархии POJO?
  • Независимо от того, сколько я создаю EJB, всегда будет один контейнер EJB?
  • Если в контейнере работает несколько EJB, необходимо ли им использовать реализацию JMS для их связи или CDI?

ответ

0
  1. Вы можете просто превратить Class4 в EJB. Просто комментируйте его с помощью @Stateless, чтобы создать независимый EJB, и с @LocalBean, если вы хотите разоблачить его методы без объявления интерфейса.

  2. Не имеет значения, является ли Class1 абсцессом или бетоном.

  3. Если вы включите Class1 в EJB, это не повлияет на его унаследованные классы. Но Class1 не должен быть абстрактным в этом случае.

  4. Err ... yes ...?

  5. Да

  6. Вы можете использовать JMS в том случае, когда некоторые EJBs являются Message Driven Beans. Но если ваши EJB являются SLSB SFSB, они будут обмениваться сообщениями с помощью простых java-вызовов в одном контейнере или использовать RMI, если они не находятся в одном контейнере. CDI может использоваться для получения экземпляров EJB (@Inject), поскольку EJB являются бинами CDI. Но вы также можете использовать базовый DI к этому (@EJB)

+0

Спасибо, Бенджамин. Что касается вопроса № 4, я хотел спросить, разве это не все POJO, прежде чем они превратятся в специальные объекты, например EJB? Разве не все объекты POJO теоретически или являются только объектными компонентами, рассматриваемыми как POJO? – softwarelover

Смежные вопросы