2014-12-17 4 views
0

Я думаю, что это довольно простой вопрос, но я еще не нашел решение. Как бы я «обнул» объект, который мне позже хотелось бы как объект, который нужно вставить.Как отказаться от объекта для CDI/Weld

Давайте говорить, что мы имеем ServiceA, который создает объект

@Stateless 
public class ServiceA { 

    public void createObject() { 

     MyObject myObject = callSomeService(); 
     ---> now put myObject into the session 
    } 
} 

а другая служба B должны быть в состоянии использовать этот объект:

@Stateless 
public class ServiceB { 

    //should be available here 
    @Inject 
    private MyObject myObject 

} 

Как бы я сделать это? Спасибо за помощь!

ответ

1

Возможно, вам понадобится использовать метод Продюсера.

Способ изготовления может позволить вам выбрать реализацию компонента в времени выполнения, а не во время разработки или время развертывания. ~ Java EE 6 Tutorial

Вы можете найти примеры использования методов Продюсера в Интернете. This tutorial кажется полезным.

Похожий вопрос:

3

В частности, метод производителя вам нужно будет выглядеть следующим образом:

@Produces 
@SessionScoped 
public MyObject createSessionObject() { 
    return callSomeService(); 
} 

Это будет вызываться один раз для сессии первый время доступа.

Смежные вопросы