具有依赖性注入错误的生产者/消费者模式

问题描述 投票:0回答:1

Java EE 7 - Injection into Runnable/Callable object

继续这个问题,我有一个情况......我正在使用生产者/消费者模式来消费对象列表。 My Class Consumer是Runnable的一个实现。

public class MYConsumer implements Runnable{

   @EJB
   private MYService myService;    

   private BlockingQueue<> queue;

   public MYConsumer (BlockingQueue<> q){
        this.queue=q;
   }
  @Override
    public void run() {
       /** Error is here**/    
       myService.insert(); 
    }
}

Pattern的实现工作正常,但是当我尝试使用myService时,它是Null。容器没有注入服务。我知道这是因为Container只知道自己创建的实例。

但是怎么能克服这个问题呢?谢谢

java multithreading dependency-injection cdi producer-consumer
1个回答
1
投票

您应该在会话bean中实例化您的runnable对象。此会话bean将实例化您需要的服务,然后将其传递给您的runnable对象。

© www.soinside.com 2019 - 2024. All rights reserved.