# spb-dbo-sec **Repository Path**: QWorld/spb-dbo-sec ## Basic Information - **Project Name**: spb-dbo-sec - **Description**: springboot整合dubbo服务 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-08-08 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # spb-dbo-sec #### 项目介绍 springboot整合dubbo服务 对比查看多个dubbo工程,想要验证接口以及接口实现是不是需要分开两个工程.消费者依赖服务接口,同时负责服务实现的提供者也会依赖服务接口. controller也就是服务调用方在依赖服务接口工程之后,能够正常地使用接口里面的方法。 1. dubbo工程的配置(如何为消费者,提供者进行dubbo配置,感受区别)。 2. 验证配置的是否生效 消费者模块和生产者模块都是springboot项目,都应该要有spirngboot - application 的主加载类. 已经完成了dubbo项目的整合..在这个过程中,我深深地明白 consumer(在项目中是web-api) 以及 provider(在项目中是service)是两个独立的工程。 在maven依赖中应该避免直接的依赖.尽管两个工程在运行时候会产生交互. 但既然是隔离开了的工程,consumer要以什么方式调用provider上提供的服务呢, 我现在了解到的是再额外提供一个工程,指定provider-api, 将provider-api添加到consumer的maven依赖列表中,provider负责实现这一套api接口。 接触到新知识: 在 web-api 模块里注入service不再是@Autowired注解或者 @Resource注解,而应该是dubbo包提供的 @Reference 注解 在 service 模块里声明服务时候,不再使用spring框架提供的@Service注解,而应该是dubbo包提供的 @Service 注解 这两个小知识点当时没有留意到,只能狂想,为什么都按照 aires 大佬的实例在application.yml中配置了dubbo相关配置.还是没有成功呢。 在多次比较代码之后,终于发现以上两点.根据上面的方式修正之后,dubbo项目运行起来了. 运行的过程是: 访问 ```web-api``` 提供的接口: http://localhost:8081/user/list 在UserController#list方法中输出 : invoke user list controller,执行注册在zookeeper中的userService#list方法 此时在 service 工程的控制台输出中,能够看到 invoke user service impl ... 的输出。 那为什么需要这么写呢?官网上是这么说的. Dubbo的常规功能,都保持零侵入,但有些功能不得不用 API 侵入才能实现. 以下两个注解具有侵入性. com.alibaba.dubbo.config.annotation.Service com.alibaba.dubbo.config.annotation.Reference Service注解用来暴露服务,由服务提供方完成 Referece注解用来引用服务,由服务调用方完成. spb-dbo-sec 可上传至gitee上.方便以后参考 今天还踩到一个小坑. maven工程,在resource目录下面编写的application.yml文件没有被标识到...这里的原因是maven依赖,以及maven父工程需要仔细查看一下。 ctrl + alt + shift + s 查看项目,选择modules查看模块信息,发现出问题的maven模块并不能展开出 spring 的信息. 所以检查一下自己的依赖或者父模块的依赖,发现依赖中并没有和spring相关的信息.在指定springboot依赖后问题得以解决。 #### 软件架构 软件架构说明 #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本项目 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [http://git.mydoc.io/](http://git.mydoc.io/) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)