【问题标题】:Guice configure/bind best practicesGuice 配置/绑定最佳实践
【发布时间】:2016-09-29 09:38:22
【问题描述】:

如果您有分层架构(DAO、服务、控制器),如何配置 Guice?

它应该在顶层(控制器)中配置吗?或者我们应该在每一层进行配置?如果是这样,什么时候将它们连接在一起?

测试怎么样?应该如何? 谢谢。

【问题讨论】:

  • 我个人是按功能配置的,因为在同一个地方拥有一个完整的功能会更有效率。包是明确的,模块更容易配置。这需要停止思考“层”。你有一个书包,例如,你把你的实体Book 以及BookServiceBookDaoBookController 放在那里。要将所有内容绑定在一起,您也可以将 BookModule 放入该包中。因此,为了回答您的问题,我将重构为基于功能的布局,然后在每个包中放置一个模块。

标签: java dependency-injection guice


【解决方案1】:

根据一般惯例, DAO 尽可能轻量级,并提供与 DB 的连接。

服务层用于提供逻辑来操作发送到 DAO 和客户端的数据。

这些通常会被捆绑到同一个模块中,偶尔也会被捆绑到相同的代码中,但您仍然会将它们视为不同的逻辑实体。

所以你应该将需要的服务绑定到相应的Guice模块中并注入到控制器中,最好通过注入的方式将DAO提供给服务实现层。

根据测试方法,如果您的服务不执行除逻辑以外的任何功能来操作从 DAO 和客户端发送和接收的数据,则应在服务器端单独测试每个 DAO 的功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    • 1970-01-01
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    相关资源
    最近更新 更多