我的应用程序基于典型的3层体系结构,目标是创建一个SpringMVC网站和一个Spring Batch解决方案,用于提供和维护我们数据库中的产品和库存,其中速度是非常重要的因素。
我正在使用Spring的JdbcTemplate来管理遗留数据库。我的一些表包含许多我不使用的列,并且检索整个行已显示出负面影响,因为某些字段的大小(我们甚至不需要映射的blob),因此我创建了一些匹配我想要检索的列的bean,例如:
- Product -- 包含与DB中存储的字段的1:1关系。 - ProductDetailsView -- 包含id、name、price、description、stock。 - ProductListItemView -- Id、Price、name、stock。
DAO层将这些bean返回给服务层。据我所知,为Product创建DTO在服务接口中公开它可能有意义,但是,
1. 那么ProductDetailsView和ProductListItemView呢? 2. 我应该从这些'views'或'projections'中进行1:1映射到具有相同属性的DTO吗?为什么? 3. 在任何情况下,您会在哪里放置JSR-303注释以验证网络输入?
我正在使用Spring的JdbcTemplate来管理遗留数据库。我的一些表包含许多我不使用的列,并且检索整个行已显示出负面影响,因为某些字段的大小(我们甚至不需要映射的blob),因此我创建了一些匹配我想要检索的列的bean,例如:
- Product -- 包含与DB中存储的字段的1:1关系。 - ProductDetailsView -- 包含id、name、price、description、stock。 - ProductListItemView -- Id、Price、name、stock。
DAO层将这些bean返回给服务层。据我所知,为Product创建DTO在服务接口中公开它可能有意义,但是,
1. 那么ProductDetailsView和ProductListItemView呢? 2. 我应该从这些'views'或'projections'中进行1:1映射到具有相同属性的DTO吗?为什么? 3. 在任何情况下,您会在哪里放置JSR-303注释以验证网络输入?
org.company.project.catalog.model.view.ProductListItemView
org.company.project.catalog.dto.ProductListItemDto
org.company.project.common.dto.ProductListItemDto
- Computist