注意:该功能特性从goframe v2.1版本开始提供。,在业务项目实践中,业务逻辑封装往往是最复杂的部分,同时,业务模块之间的依赖十分复杂、边界模糊,无法采用Golang包管理的形式。,如何有效管理项目中的业务逻辑封装部分呢?对于每个采用Golang开发的项目都是必定会遇到的难题。,增加logic分类目录,将所有业务逻辑代码迁移到logic分类目录下,采用包管理形式来管理业务模块。,业务模块之间的依赖通过接口化解耦,将原有的service分类调整为接口目录。这样每个业务模块将会各自维护、更加灵活。,可以按照一定的项目规范,从logic业务逻辑代码生成service接口定义代码。,同时,也允许人工维护这部分service接口。,gf gen service命令通过分析给定的logic业务逻辑模块目录下的代码,自动生成service目录接口代码。,需要注意:,如果是手动执行命令行,直接在项目根目录下执行 gf gen service 即可。,参数说明:,
,自动模式(强烈建议),如果你是使用的GolandIDE,那么可以使用官方提供的配置文件:watchers.xml ,
,1. 引入官方提供的配置文件,建议在使用Goland IDE时,使用官方提供的配置文件:watchers.xml,watchers.xml下载地址:https://goframe.org/pages/viewpage.action?pageId=49770772&preview=/49770772/49770777/watchers.xml,2. 编写业务逻辑代码,
,3. 生成接口及服务注册文件,如果你已经按照步骤1做好了watchers.xml的配置,那么这一步可以忽略。因为在我们编写代码的时候,service便同时生成了接口定义文件。,如果没有配置,我们每次编写logic业务模块后,都需要手动执行一下 gf gen service 命令。,所以,我强烈建议你按照教程配置watchers.xml,不管用哪种方式,生成的service目录,效果如下:,
,注意:下面就是我说的初学者容易踩的坑,4. 注意服务的实现注入部分(仅一次),只有在生成接口文件后,才能在每个业务模块中加上接口的具体实现注入。该方法每个业务模块加一次就可以。,比如这种:,
,5. 在启动文件中引用接口实现注册(仅一次),注意:gf gen service命令除了生成接口文件之外,还生成了一个接口实现注册文件。,这个文件用于程序启动时,将接口的具体实现执行注册。,
,该文件的引入需要在main包的最顶部引入,需要注意import的顺序,放到最顶部,后面加一个空行。如果同时存在packed包的引入,那么放到packed包后面。像这样:,
,6. 搞定,完成上面的5步操作,我们就搞定了初学者容易踩坑的:通过编写logic层业务逻辑,自动生成service层代码部分,跑通业务功能,上面介绍了 gf gen service 的使用,是本期的重点。,本文转载自微信公众号「 程序员升级打怪之旅」,作者「王中阳Go」,可以通过以下二维码关注。,
,转载本文请联系「 程序员升级打怪之旅」公众号。
© 版权声明
文章版权归作者所有,未经允许请勿转载。