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