Может ли EJB-компонент реализовывать несколько интерфейсов?
Может ли EJB-компонент реализовывать несколько пользовательских интерфейсов, кроме бизнес-интерфейсов (@Local, @Remote) или представления без интерфейса (@LocalBean)?
Например, определить два интерфейса UserInterface1
, UserInterface2
, без аннотации.
Это законно для реализации:
@Stateless
public class MyBean implements UserInterface1, UserInterface2 { ...
Тогда у меня другая путаница:
@Stateless
public class MyBean implements Runnable { ...
//inside I won't try to manage thread
}
Является ли это законным или незаконным, я обнаружил, что Glassfish поддерживают эту ситуацию.
1 ответ
Данный пример недопустим, но, тем не менее, принят довольно многими реализациями (серверами приложений).
Дэвид Блевинс начал тему об этом в списке рассылки EJB некоторое время назад.
EJB 3.2 сделает правила более понятными для этой темы. Смотрите, что нового в EJB 3.2? - Java EE 7 задыхается! (смотрите раздел Упрощенные правила для определения всех локальных / удаленных представлений bean-компонента)