这个问题在这里已有答案:
我刚刚开始上一份新工作,我开始使用一个非常古老的应用程序,我们没有架构师,任何开发人员都非常关心或理解正确的事情 . 我对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是否正确识别请求?