2016-09-29 88 views
4

如果您有分层架构(DAO,服务,控制器),如何配置Guice?Guice配置/绑定最佳实践

它应该配置在顶层(控制器)?或者我们应该在每一层配置?如果是这样,何时如何把它们联系在一起?

如何测试?它应该如何? 谢谢。

+0

我个人根据功能进行配置,因为在同一个地方使用整个功能效率更高。包是明确的,模块更容易配置。这需要停止考虑“图层”。例如,你有一个书包,你把你的实体'Book'放在那里,以及'BookService','BookDao','BookController'。为了把所有东西都绑定在一起,你也把'BookModule'放在那个包里。所以要回答你的问题,我会重构基于特征的布局,然后在每个包中放置一个模块。 –

回答

0

根据一般惯例, DAO是尽可能轻和存在提供一个连接到数据库。

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

很多时候,这些将被捆绑在一起放入同一个模块,偶尔会放入相同的代码中,但您仍然会将它们视为不同的逻辑实体。

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

根据测试方法,如果您的服务没有执行除逻辑之外的任何其他功能来处理发送到DAO和客户端的数据,则应在服务器端单独测试每个DAO的功能。