了解Java Web开发和分离逻辑层

了解Java Web开发和分离逻辑层,java,design-patterns,jakarta-ee,Java,Design Patterns,Jakarta Ee,在开发JavaEE应用程序时,如何分离业务逻辑以使其可以重用 我继承了一个主要是模型1的应用程序。业务逻辑位于JSP、servlet和DAO代码中 我想分离业务逻辑,但我被现有的所有框架等弄糊涂了 我正在研究Hibernate和JPA来处理所有数据库持久性。目前,所有SQL都是手工编码的,不同的RDBMS使用不同的SQL。我的DAO将调用持久化所需的代码 我正在考虑将Struts用于我的web层。我不理解的部分是业务逻辑 我不希望我的逻辑绑定到Web层,因为我希望在JavaSE应用程序中重用逻辑

在开发JavaEE应用程序时,如何分离业务逻辑以使其可以重用

我继承了一个主要是模型1的应用程序。业务逻辑位于JSP、servlet和DAO代码中

我想分离业务逻辑,但我被现有的所有框架等弄糊涂了

我正在研究Hibernate和JPA来处理所有数据库持久性。目前,所有SQL都是手工编码的,不同的RDBMS使用不同的SQL。我的DAO将调用持久化所需的代码

我正在考虑将Struts用于我的web层。我不理解的部分是业务逻辑

我不希望我的逻辑绑定到Web层,因为我希望在JavaSE应用程序中重用逻辑

我曾考虑将业务逻辑放在实体类中,但这似乎是个坏主意

是否有一些技术或模式可以作为创建可重用业务逻辑的指南

如果我不清楚,我将编辑


多谢各位

要将前端代码(视图)与业务逻辑(控制器)和数据(模型)分开,您可以按照以下步骤操作

您可以让控制器访问包含将在JavaSE应用程序中使用的可重用业务逻辑的其他类


有很多框架可以帮助您以这种风格构建web应用程序,比如Grails(使用Groovy)、Play或Roo。但是因为你说的是“企业”,所以你应该看看它和它的MVC模块。Spring提供了与Hibernate的良好集成,并允许您在web应用程序中遵循MVC模式。

我想说的是,随吃随用。首先解决最大的问题,在jsp页面中包含业务逻辑。您可以使用您选择的任何web MVC框架(Struts、Spring MVC、Grails都很好,请选择您最熟悉的框架)

下一个问题是在控制器可以调用的单独模型层中组织业务逻辑。Spring是组织和引导应用程序的良好DI框架。此外,Spring支持许多web MVC框架,包括Struts、JSF等


最后一个问题是Dao层。您提到要使用Hibernate/JPA。我不知道您对Hibernate有多熟悉,但请确保您正试图通过切换到Hibernate来解决实际问题(因为切换到Hibernate通常会带来巨大的成本和麻烦)。

@jimferras感谢您的拼写检查