发表于: 2020-02-27 20:29:23

2 1032


啥也不说就是干!!

今天完成的事情:

1、dubbo 的注解配置

服务提供者 applicaion.yml 文件配置变化

相比多了一个 scan 配置,指定扫描需要暴露的 service 所在包名

服务提供者 service 实现类

现在需要将 @Service 由 Spring 框架的注解改为 dubbo 框架下的注解(可以配置 service 相关的属性如 version)

当然在 ProviderApplication 中也无需在引入 dubbo.xml 配置文件

@SpringBootApplication
public class ProviderApplication {
public static void main(String[] args){
      SpringApplication.run(ProviderApplication.class);

   }
}

服务消费者需要使用 @Reference 来引用到服务提供者暴露的接口实现

启动服务提供者和服务消费者,可以看到调用正常

在开发过程中还是推荐使用 xml 配置文件的形式

主要原因是,@Reference 注解,每次引用服务的时候,都需要在注解上添加好多配置的属性。这样,服务的引用的配置后就散落到各个类里了。

2、dubbo 参数校验

在 Service-API 模块加上校验框架,相关依赖如下

<!-- 参数校验相关依赖 -->
<dependency>
   <groupId>javax.validation</groupId>
   <artifactId>validation-api</artifactId> <!-- JSR 参数校验规范 API -->
   <version>2.0.1.Final</version>
</dependency>
<dependency>
   <groupId>org.hibernate.validator</groupId>
   <artifactId>hibernate-validator</artifactId> <!-- JSR 参数校验规范实现,我们使用 hibernate-validator -->
   <version>6.0.18.Final</version>
</dependency>
<dependency>
   <groupId>org.glassfish</groupId>
   <artifactId>javax.el</artifactId> <!-- 可能涉及到 EL 表达,所以引入,否则 hibernate-validator 在初始化会报错 -->
   <version>3.0.1-b11</version>
</dependency>

在入参上面加上校验条件

在服务提供者 service-provider 和服务消费者 service-consumer 的 dubbo.xml 配置中都打开 validation 开关

然后在测试方法中调用方法进行测试(方法入参传空)

@Override
public void run(String... args) throws Exception {
try {
       UserDTO user = userRpcService.get(null);
       logger.info("[run][发起一次 Dubbo RPC 请求,获得用户为({})", user);
   }catch (Exception e){
       logger.error("[run][获得用户发生异常,信息为:[{}]", e.getMessage());
   }

}

控制台看到有异常信息的打印

明天计划的事情:

将 任务8 中的 spring-rmi 远程服务调用改为 dubbo 实现

遇到的问题:

暂无





返回列表 返回列表
评论

    分享到