Внедрить различные расширения абстрактного класса как EJB - PullRequest
0 голосов
/ 13 февраля 2019

Мне нужно внедрить другую реализацию интерфейса в, скажем, отдых, сервис.Из-за ограничений проекта я должен определить реализации как EJB.

Теперь у меня есть несколько вопросов:

  1. Правильно ли мое использование приведенных ниже комментариев?
  2. Правильно ли вводить другие bean-компоненты внутри абстрактного класса?Будет ли оно вводиться конкретным классам во время выполнения?
  3. Эта архитектура пахнет или это обычное использование инъекций 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();
       }
 }
...