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;
//...
}
或爲brandService
創建BrandBean
一個getter和使用這種方式:
@Named
@SessionScoped
public class ClotherBean implements Serializable {
@Inject
private BrandBean brandBean;
public void test(){
brandBean.getBrandService().selectAll();
}
}
是否有這兩種方法之間的差異?或者兩者都是一樣的?
在我看來首先是更好的。在第二個例子中,您有額外的圖層 - BrandBean,並且無論是否需要BrandBean,都會在每個請求上創建垃圾。我的理解是BrandService是一個獨立的無狀態服務,因此可以在任何需要的地方使用它,而無需引入其他代理/委託人。 – Gas 2014-12-06 17:19:19