我在解释playframework平面和静态架构时遇到了问题

我在解释playframework平面和静态架构时遇到了问题,playframework,Playframework,我正在开始一个新的项目,在某种程度上,我在争论平台架构(控制器和模型-没有服务层和DAO)和控制器中大量使用静态数据方面遇到了困难 在某种程度上,这是DDD和fowler提出/采用的标准企业模式的背离。在理解对高质量体系结构的需求的同时,我发现缺乏“层”令人耳目一新 我看过纪尧姆对“静态”用法的回答[http://stackoverflow.com/a/5193721/501769]但是他没有提到使用DI来实现简单的单元测试。我很想在此听取一些意见。我在play 2应用程序中使用服务层和DAO。

我正在开始一个新的项目,在某种程度上,我在争论平台架构(控制器和模型-没有服务层和DAO)和控制器中大量使用静态数据方面遇到了困难

在某种程度上,这是DDD和fowler提出/采用的标准企业模式的背离。在理解对高质量体系结构的需求的同时,我发现缺乏“层”令人耳目一新


我看过纪尧姆对“静态”用法的回答[http://stackoverflow.com/a/5193721/501769]但是他没有提到使用DI来实现简单的单元测试。我很想在此听取一些意见。

我在play 2应用程序中使用服务层和DAO。您可以使用Guice或任何其他DIC将这些依赖项注入控制器。另一个困扰我的是数据库或缓存组件的静态使用。当然,您可以在测试期间覆盖这些组件,也可以将组件包装到单独的层中,但这始终是样板代码


你能给我一个链接到纪尧姆关于使用“静态”的回答吗?

Play 2.1增加了使用注入控制器的功能。有关Spring+Play应用程序的示例,请查看:

这可能是纪尧姆引用的帖子:感谢詹姆斯,我认为eve链接到了同一个项目。我遇到的一些摩擦特别是在测试期间注入模拟dao的能力。所以那个“真实”的数据库不会被击中。谢谢詹姆斯,这有什么坏处吗。它会让你远离纯粹的(无状态的)控制器模型吗?我知道没有任何缺点。有些地方Spring使用ThreadLocal,但这不应该成为问题。谢谢James,我们可能会和guice一起使用DI路线。至少是dao注入。非常感谢playframework。太棒了!特别是快速开发循环。