从按层封装到 -> 按功能封装的迁移问题

问题描述 投票:0回答:1
  • 我想要实现的目标

我希望对我的@Configuration 文件使用“按功能打包”。 目前,我正在使用“逐层封装”。 需要明确的是,这不是一个基于意见的类型问题,即“按功能打包”和“按层打包”哪个更好,而是一个如何正确迁移的问题。

  • 这是当前的代码结构:

分层封装:

├── com.app
    └── configuration
        ├── KafkaProducerConfiguration
        ├── MongoRepositoryConfiguration
        └── RestClientConfiguration
    └── controller
        ├── CompanyController
        ├── ProductController
        └── UserController
    └── model
        ├── Company
        ├── Product
        └── User
    └── repository
        ├── CompanyRepository
        ├── ProductRepository
        └── UserRepository
    └── service
        ├── CompanyService
        ├── ProductService
        └── UserService

公司服务需要kafka生产者向公司的其他部分发送消息。 其余客户端是用户服务和产品服务需要查询一些外部信息。 需要 mongo 存储库来配置存储库层中的所有三个类。

  • 我尝试过的:

遵循本指南:https://medium.com/sahibinden-technology/package-by-layer-vs-package-by-feature-7e89cde2ae3a

我正在重构:

├── com.app
    └── configuration
        ├── KafkaProducerConfiguration
        ├── MongoRepositoryConfiguration
        └── RestClientConfiguration
    └── company
        ├── Company
        ├── CompanyController
        ├── CompanyRepository
        └── CompanyService
    └── product
        ├── Product
        ├── ProductController
        ├── ProductRepository
        └── ProductService
    └── user
        ├── User
        ├── UserController
        ├── UserRepository
        └── UserService
  • 问题:

不幸的是,我在重构配置层时遇到了困难,我想避免按功能包+按层包的混合包。

  • 问题:

如何将这个配置层重构为“按功能打包”?

java spring-boot package refactoring
1个回答
0
投票

在我看来这是一个如何组织包结构的问题,一般有两个方向,一是按业务逻辑划分,通过关键的业务逻辑概念来完成包结构组织,二是按领域划分,使用DDD(Domain-驱动设计)来划分域并围绕域来组织包结构。但这两个都是主观的,没有标准答案

© www.soinside.com 2019 - 2024. All rights reserved.