我正试图通过功能方法正确理解包。
1 - 假设我有2个功能可以点击相同的数据。例如, 一个功能可能是用银行帐户信息可视化 不同的复杂可能性。另一个特点是 从银行账户进行交易(我们可以想象这一点 这个功能不涉及可视化,它可能很简单 作为休息服务提供。)
1.a - 此处的两个功能共享数据模型。这是如何影响包的功能。我们应该创建冗余数据模型 2个课程中的课程?我们要为它创建一个特定的包 而不是数据模型?
这引出了我的第二个问题?
2-一般来说,如何处理跨领域问题?
2.a - 例如上述数据模型的情况?
2.b - 或者,当谈到数据库访问或对外部服务的一些共同访问时(由不同的功能共享,但正在进行) 与之不同的东西)?
2.c - 否则,一般应用程序的前端或整体捆绑。
我的意思是以下情况:目前我的应用程序有
(i)消息传递能力(系统参与者之间)
(ii)它还具有消息传递监视功能,可以自动检测规则违规并给予惩罚。
(iii)专用于系统管理员的可视化功能。
(iv)向系统管理员提供通知功能以向参与者发送消息。
(V)管理员的违规取消功能。等等。
重点是它必须打包在一个应用程序中 呼叫市场基础设施。应该是市场基础设施 将所有东西连在一起都有他自己的包装?即使它是 不是特色。
我认为同样可以应用于Web应用程序中的一些方法。必须有一个中心点,它将所有功能模块/包完全捆绑在一起。如果每个模块定义路由,控制器等......应该有一个中央路由,例如导入所有路由。
如果应用程序后面有一个数据库,则该数据库由不同的功能使用,谁将启动数据库并连接每个模块。
所以底线是:交叉功能的东西(数据模型, 服务访问等。)和捆绑(连接一切 在一起)。
PS:通过布线我考虑依赖注入,仍然必须在某处定义对象图。
非常感谢您的帮助。
答案 0 :(得分:1)
正在对这个主题进行一些阅读并找到了这个问题。希望将其他人指向此视频,该视频可以很好地解释有关如何打包Java应用程序的一些想法
YouTube: Whoops! Where did my architecture go? by Oliver Gierke from Spring Data