У меня есть какой-то тривиальный вопрос.
Если я определил интерфейс EJB3 +, скажем, он удаленный, вот так:
@Remote
public class FooServiceRemote {
void foo();
}
и одна реализация
@Stateless
public class FooService implements FooServiceRemote {
void foo() { ... }
}
Как сервер приложений по умолчанию разрешает какую реализацию использовать (и вызывать через прокси), если он знает только аннотацию @EJB для внедрения зависимостей, как в интерфейсе:
public class SomeClass {
@EJB
private FooServiceRemote fooService;
}
Это так?сделано отражением (сокращение имени интерфейса)?Или он сканирует возможные реализации такого интерфейса, выбирая один.Или же.. ?А что, если я хочу создать больше реализаций одного интерфейса, возможно ли это и как указать, какую реализацию следует создать (возможно, с помощью некоторого аргумента аннотации).
Спасибо: -)