Java 对于店面和后端,最好有单独的项目,还是单个项目?

Java 对于店面和后端,最好有单独的项目,还是单个项目?,java,api,web-applications,architecture,Java,Api,Web Applications,Architecture,我使用Spring和Hibernate运行一个用Java构建的电子商务网站。如果我必须简要描述当前的体系结构,那么它是这样的: 两个项目-店面和管理 店面项目包含dao、模型、服务、控制器和视图,用于显示网站的店面视图,还包含应用程序的API 管理项目包含dao、模型、服务、控制器和视图,用于显示用于管理此电子商务商店的后端/管理界面 Storefront和admin都独立地与公共MySQL数据库进行通信,每当这两个项目之间需要通信时,他们都使用RESTAPI进行通信 我遵循这个体系结构独立开发

我使用Spring和Hibernate运行一个用Java构建的电子商务网站。如果我必须简要描述当前的体系结构,那么它是这样的:

  • 两个项目-店面管理
  • 店面项目包含dao、模型、服务、控制器和视图,用于显示网站的店面视图,还包含应用程序的API
  • 管理项目包含dao、模型、服务、控制器和视图,用于显示用于管理此电子商务商店的后端/管理界面
  • Storefront和admin都独立地与公共MySQL数据库进行通信,每当这两个项目之间需要通信时,他们都使用RESTAPI进行通信
  • 我遵循这个体系结构独立开发这两个项目,使它们保持轻量级,并独立部署它们
  • 但我并不确定这是正确的做事方式。我经常面临的主要问题是:

  • 它通常会导致代码重复,主要是在模型中,因为这是两个项目都有的东西,但它们中的大多数属性是通用的
  • 若需要对数据库进行任何更改,那个么我必须确保在两个项目中都正确地进行了这些更改,因为这两个项目都在进行独立的DB调用
  • 请建议处理和设计此类项目的最佳方法。网站统计数据如下:

  • 大约100万种产品
  • 月流量约100万
  • 每天订单约1000份

  • 在未来9个月内,我们希望在流量和订单方面有更多的增长。因此,请建议记住未来的可伸缩性。

    共享公共模型:对于在可能增长且易于频繁更改的应用程序中共享的公共模型,您可以将模型作为一个单独的项目,在每个项目中都具有pom依赖关系。更好的方法是使用json模式定义保留该项目,并使用maven插件(假设您正在使用maven)在构建期间将其转换为POJO,并添加到项目类路径中。请参阅

    <> >网站统计/流量增长:,请考虑负载平衡群集(如果还没有完成),您的Web /应用服务器添加多个节点。这将有助于提高应用程序的高可用性并处理高流量

    也许还有其他更好的解决方案,但这些都值得考虑。我对你的其他观点有一些想法,但我觉得对于那些对架构有更好了解的人,可能会有更好的解决方案


    希望这些想法能有所帮助。

    我本希望得到更多的回应,但没有人回应。我喜欢你关于共享模型的想法。你能分享更多关于更好的项目结构的想法吗。我有处理交通增长的相关知识。但创建一个结构化的、可维护的项目是我在互联网上找不到的资源。