这个问题在这里已有答案:

我刚刚开始上一份新工作,我开始使用一个非常古老的应用程序,我们没有架构师,任何开发人员都非常关心或理解正确的事情 . 我对JSF和EJB没有经验,我敢说这个应用程序架构的计划不是很好 .

我们有四个主要层,我说“像四个”,因为大多数时候开发人员将业务逻辑放在表示层或DAO层中,并且设计是在业务流程而不是实体中进行思考,因此有很多重复码 .

1) JSF managed beans

这个clases是用@ManagedBean和@ViewScoped定义的 . 大多数时候,所有业务逻辑都存在 .

2) Managers EJB (?)

这些类定义为@Stateless,@ Resource指向全局SessionContext

3) Services, also EJB

这个类定义为@RequestScoped,据我所知,业务逻辑应该在这里 .

4) DAOs Layer

普通数据层 .

现在问题......

第2层和第3层应该只有一个吗?

将第一层定义为ViesScoped,第二层定义为Stateless,第三层定义为RequestScoped,这是正常的做法吗?即使我将第一层视为ViewScoped,EJB是否正确识别请求?