2014-12-06 2 views
0

Какой способ лучше вводить EJB Bean? У меня есть EJB:Лучший способ для инъекции EJB bean в @Named или @ManagedBean

@Stateless 
public class BrandModel implements BrandService { 
//... 
} 

и у меня есть JSF @Named боб, где я впрыснуть мой EJB:

@Named 
@RequestScoped 
public class BrandBean implements Serializable { 
    @EJB 
    private BrandService brandService; 
//... 
} 

, но если я создаю новый @Named или @ManagedBean, например ClotherBean, в котором я буду необходимо использовать EJB BrandModel, какой способ лучше вводить EJB? Это:

@Named 
@SessionScoped 
public class ClotherBean implements Serializable { 
    @EJB 
    private BrandService brandService; 
//... 
} 

или создать геттер в BrandBean для brandService и использовать его таким образом:

@Named 
@SessionScoped 
public class ClotherBean implements Serializable { 

    @Inject 
    private BrandBean brandBean; 

    public void test(){ 
     brandBean.getBrandService().selectAll(); 
    } 

} 

Есть ли разница между этими двумя подходами? Или оба пути одинаковы?

+0

На мой взгляд, первый лучше. Во втором примере у вас есть дополнительный уровень - BrandBean и создание мусора по каждому запросу независимо от того, нужен ли BrandBean или нет. Я понимаю, что BrandService - независимая служба без состояния, поэтому используйте ее в любом месте, где она вам нужна, без введения другого прокси-сервера. – Gas

ответ

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