Мне нужно внедрить другую реализацию интерфейса в, скажем, отдых, сервис.Из-за ограничений проекта я должен определить реализации как EJB.
Теперь у меня есть несколько вопросов:
- Правильно ли мое использование приведенных ниже комментариев?
- Правильно ли вводить другие bean-компоненты внутри абстрактного класса?Будет ли оно вводиться конкретным классам во время выполнения?
- Эта архитектура пахнет или это обычное использование инъекций EJB?
Короче говоря, что может быть не так в следующей архитектуре или может привести к ошибкам во время выполнения?
@Local
-Interface IGenerator{
generate();
}
abstract AbsGenerator implements IGenerator{
@inject
SomeService aService;
}
@stateless(name="xgenerator")
Class XGenerator extends AbsGenerator {
@permitAll
@override
generate(){
aService.doSomestuf();
//generate xxxxxx
}
}
@stateless(name="ygenerator")
Class YGenerator extends AbsGenerator {
@permitAll
@override
generate(){
aService.doSomestuf();
aService.doSomeotherstuf();
//generate yyyyyy
}
}
@Path("/genservice")
public class GeneratingService {
@Named("xgenerator")
IGenerator xGenerator;
@Named("ygenerator")
IGenerator yGenerator;
@Post
public void start () {
xGenerator.generate();
yGenerator.generate();
}
}