在阅读了Gordon关于使用Spring Framework构建企业应用程序的最佳实践的文章后,我想分享一些关于服务层的想法。
我的架构完全代表戈登在此图片http://gordondickens.com/wordpress/wp-content/uploads/2012/07/Spring-App-Layers.png
中描述的内容应用程序很复杂,业务规则繁重,需要在同一个用例中使用数据库,SOAP,REST和文件句柄等不同资源。
对于我上面描述的这个场景,我有一个Service类需要执行SOAP和REST请求并处理一些数据库数据。所以,我已经在我的Service类中自动装配了SOAP和REST组件以及用于处理数据库内容的Repository。
我担心这是否是处理我的服务与SOAP,REST,数据库等资源之间集成的最佳方法。
由于
答案 0 :(得分:2)
所以,我已经在我的Service类中自动装配了SOAP和REST组件 以及用于处理数据库内容的Repository。
即使有效也会出现问题。
考虑层之间的依赖关系。服务层将依赖于Repository层(业务逻辑层将依赖于数据层)。传入请求的服务集成层(或服务通信层)将取决于服务层。但数据层不依赖于服务层。服务层也不依赖于入站服务调用层。
因此,从Service类中删除SOAP和REST组件。对于SOAP和REST组件,连接Service实例(即避免连接到服务的SOAP和REST组件,反向执行)。
这样,当你想支持另一个集成协议(比如说JMS)时,你不是通过修改你的服务来完成所有这些工作。
您的数据访问似乎没问题。我希望您的服务通过DAO访问存储库。
答案 1 :(得分:0)
所以,我已经在我的Service类中自动装配了SOAP和REST组件 以及用于处理数据库内容的Repository。
听起来不错。您正在使用依赖注入,这意味着它们可以轻松地进行测试或更改。