将EJB bean注入@Named或@ManagedBean的更好方法

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

注入EJB Bean哪种方式更好?我有一个EJB:

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

我有JSF @Named bean,我注入了我的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;
//...
}

或者在BrandBeanbrandService创建一个getter并以这种方式使用它:

@Named
@SessionScoped
public class ClotherBean implements Serializable {

    @Inject
    private BrandBean brandBean;

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

}

这两种方法有区别吗?或两者都是一样的?

jsf java-ee dependency-injection ejb
1个回答
0
投票

无论哪种方式都可以接受。但是因为Java 6+ @Inject是首选。无论您使用什么AS,行为都必须相同。以下是关于这个问题的更多信息:

http://germanescobar.net/2010/04/4-areas-of-possible-confusion-in-jee6.html

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