Java 如何在Spring应用程序中构造层和职责?
我阅读了一些关于在Spring中创建应用程序的文章和教程,以了解如何将独立(而非web)Spring应用程序分层 情况-我的应用程序将处理一些数据并使用它进行一些计算。数据将从不同的数据源(PostgreSQL和RESTful API)存储和读取 我知道如何构建我的应用程序:Java 如何在Spring应用程序中构造层和职责?,java,spring,postgresql,architecture,Java,Spring,Postgresql,Architecture,我阅读了一些关于在Spring中创建应用程序的文章和教程,以了解如何将独立(而非web)Spring应用程序分层 情况-我的应用程序将处理一些数据并使用它进行一些计算。数据将从不同的数据源(PostgreSQL和RESTful API)存储和读取 我知道如何构建我的应用程序: 域对象(com.example.Domain)-简单的POJO类,如产品、订单、客户等 服务层(com.example.Service)-这些类将处理业务逻辑,与控制器和DAO对象协作,并将实现一些接口(ProductM
- 域对象(
)-简单的POJO类,如产品、订单、客户等com.example.Domain
- 服务层(
)-这些类将处理业务逻辑,与控制器和DAO对象协作,并将实现一些接口(ProductManager、OrderManager等)com.example.Service
- DAO/repository层(
)-定义原始数据操作的接口(ProductDao、OrderDao)。对于特定的数据源(PostgreSQLProductDao等),将实现这些接口com.example.repository
我读了很多文章,但我还没有找到这些问题的明确答案。谢谢。这种分离很有意义 在专用层中分离数据访问代码的目标之一是解决您所问的问题。服务层不应该关心客户存储的位置和方式,以及如何正确获取所有需要的字段。这是道的责任
因此,DAO实现应该注意从底层数据源获取实体。对于独立的应用程序,我强烈建议您考虑引导应用程序和数据处理。避免像瘟疫一样使用所有XML。您的结构看起来很好。那么您的意思是服务层应该只有一个,并且DAO实现负责向服务提供所有和完全限定的数据吗?在我的情况下,创建接口定义服务的另一个实现的合适用例是什么?我不能说,因为这取决于应用程序的实际功能。对于生产代码,您可能只有每个服务的一个实现,并且没有任何错误。但是您可能需要创建一些服务的简单实现(想想存根或虚拟),以便能够基于它测试其他服务。