dubbo注意的问题,接口中的bo应该实现序列化,否则服务注册失败
用注解的服务注入1,用dubbo的@services,2,服务的引用用dubbo的@Refrence
1,在不使用dubbo注解的时候,service可以注入给消费端任何在spring容器管理的类
2,使用duboo注解的时候,除了配置spring的扫路径,还需配置dubbo的扫描路径
<!--dubbo相关配置 -->消费方,服务方都需要
<dubbo:annotation package="com.houbank" />
<!-- dubbo reference 注解 并非给 spring 管理,dubbo 通过扫描 将 其 反身赋值,故 dubbo扫描需要在 controller(初始化完成)之前,这也
涉及到 该注解 在 controller中 是 获取 dispatcher context空器中的 对象,而非 父容器 context 容器,故 BeanUtils 也是无法直接获取值的。-->
<dubbo:annotation package="com.houbank.incoming.web.controller, com.houbank.incoming.web.util" />
<!-- dubbo 扫描和spring扫描开启 -->
<!--<context:component-scan base-package="com.houbank.incoming.web.controller" /> -->
<context:component-scan base-package="com.houbank" />
服务注册:
@Service ——》com.alibaba.dubbo.config.annotation
消费方:
@Reference ——》com.alibaba.dubbo.config.annotation
如果是简单的使用这种注入的方式只能注入到controller ,需要注入给@Component或消费端任意spring容器管理的类,需要用配置文件的方式加强
消费端:
<!-- 这里需要显式配置,否则 通过BeanUtil的方式无法获取到bean,解决velocity自定义模板注入问题 -->
<dubbo:reference id="cacheFacade" interface=" com.houbank.incoming.api.CacheFacade" check="false"/>
<dubbo:reference id="codeLibraryFacade" interface=" com.houbank.incoming.api.CodeLibraryFacade" check="false"/>
<dubbo:reference id="weixinBaseInfoFacade" interface=" com.houbank.incoming.api.WeixinBaseInfoFacade" check="false"/>
<dubbo:reference id="financialSalesRoleFacade" interface=" com.houbank.incoming.api.FinancialSalesRoleFacade" check="false"/>
<dubbo:reference id="financialSalesEmploymentFacade" interface="com.houbank.incoming.api.FinancialSalesEmploymentFacade" check="false" />
<dubbo:reference id="financialSalesTeamFacade" interface="com.houbank.incoming.api.FinancialSalesTeamFacade" check="false" />
<dubbo:reference id="financialSalesCustomersFacade" interface="com.houbank.incoming.api.FinancialSalesCustomersFacade" check="false" />
<dubbo:reference id="financialSalesStatisticsFacade" interface="com.houbank.incoming.api.FinancialSalesStatisticsFacade" check="false" />
<dubbo:reference id="financialSalesFuncFacade" interface=" com.houbank.incoming.api.FinancialSalesFuncFacade" check="false"/>
<dubbo:reference id="financialSalesUserFacade" interface=" com.houbank.incoming.api.FinancialSalesUserFacade" check="false"/>
@Reference
private FinancialSalesFuncFacade financialSalesFuncFacade;
public FinancialSalesFuncFacade getFinancialSalesFuncFacade() {
return financialSalesFuncFacade;
}
public void setFinancialSalesFuncFacade(FinancialSalesFuncFacade financialSalesFuncFacade) {
this.financialSalesFuncFacade = financialSalesFuncFacade;
}
dubbo在调试的时候有多个服务提供方,由指定的消费进去后,会随机一个服务方,后面服务方返回的也是到这个消费方,可以通过服务版本的方式控制乱跳
即:
消费方,服务方在第一次启动的时候就向注册中心获取服务,或者消费者列表(定时同步)
后续消费方根据自己内存的服务路由选择服务方,服务方根据request packget中带来的请求方的ip,端口返回给之前请求的消费端