将抽象类的不同扩展作为EJB注入

时间:2019-02-12 22:30:06

标签: ejb abstract inject

我必须将接口的不同实现注入到一个服务中,比如说休息。由于项目限制,我必须将实现定义为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();
       }
 }

0 个答案:

没有答案