【Dubbo分布式服务框架】3.基于注解的服务提供者和消费者
来源:互联网 发布:软件设计师教程 编辑:程序博客网 时间:2024/05/29 14:31
我们前面使用xml配置了服务的提供方和消费方,其实Dubbo还提供了基于注解的配置。
我们下面把之前的服务改造成注解的方式。
分别创建服务提供者和服务消费者:
添加的依赖和之前一样:
对于服务提供方:
Service接口:
Service实现中,添加Service暴露注解:
服务提供执行类Provider:
配置文件provider.xml:
对于服务消费方:
Service接口与服务提供方一样。
编写一个SortAction:
服务执行类Consumer:
配置文件consumer.xml:
然后我们启动Zookeeper:
运行服务提供端Provider类:
然后运行消费方Consumer类:
可以看到,我们的注解也实现了服务的暴露、注册与获取。
转载请注明出处:http://blog.csdn.net/acmman/article/details/73554728
我们下面把之前的服务改造成注解的方式。
分别创建服务提供者和服务消费者:
消费者:
添加的依赖和之前一样:
对于服务提供方:
Service接口:
package cn.com.dubbo.service;public interface SortService {//升序排序int[] ascendingSort(int[] arrays);}
Service实现中,添加Service暴露注解:
package cn.com.dubbo.service.impl;import cn.com.dubbo.service.SortService;import com.alibaba.dubbo.config.annotation.Service;@Service(version="1.0.0")public class SortServiceImpl implements SortService{@Overridepublic int[] ascendingSort(int[] arrays) {int temp=0;//冒泡升序排序for (int i = 0; i < arrays.length-1; i++) {for (int j = i+1; j < arrays.length; j++) {if(arrays[i]>arrays[j]){temp=arrays[i];arrays[i]=arrays[j];arrays[j]=temp;}}}return arrays;}}
服务提供执行类Provider:
package cn.com.dubbo.run;import java.io.IOException;import org.springframework.context.support.ClassPathXmlApplicationContext;public class Provider {public static void main(String[] args) throws IOException { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"provider.xml"}); //远程provider调用 /*ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"http://192.168.1.102/wiki/display/dubbo/provider.xml"});*/ context.start(); System.in.read(); // 按任意键退出}}
配置文件provider.xml:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <!-- 提供方应用信息,也可以用dubbo.properties配置 --> <dubbo:application name="annotation-arrays-sort-app" /> <!-- 使用zookeeper注册中心暴露服务地址 --> <dubbo:registry address="zookeeper://127.0.0.1:2181" /> <!-- 用dubbo协议在20880端口暴露服务 --> <dubbo:protocol name="dubbo" port="20880" /> <!-- 扫描注解包路径,多个包用逗号分隔,不填pacakge表示扫描当前ApplicationContext中所有的类 --><dubbo:annotation package="cn.com.dubbo.service" /></beans>
对于服务消费方:
Service接口与服务提供方一样。
编写一个SortAction:
package cn.com.dubbo.action;import org.springframework.stereotype.Component;import cn.com.dubbo.service.SortService;import com.alibaba.dubbo.config.annotation.Reference;@Component //与xml生命bean一样public class SortAction { @Reference(version="1.0.0") // 获取远程服务代理 private SortService sortService; public void sort(){ int [] arrays = {234,1,45,22,123}; System.out.println("排序前:"); for (int i = 0; i < arrays.length; i++) {System.out.println("arrays["+i+"]="+arrays[i]);} arrays = sortService.ascendingSort(arrays); // 执行远程方法 //显示调用结果 System.out.println("排序后:"); for (int i = 0; i < arrays.length; i++) {System.out.println("arrays["+i+"]="+arrays[i]);} }}
服务执行类Consumer:
package cn.com.dubbo.run;import java.io.IOException;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.stereotype.Component;import com.alibaba.dubbo.config.annotation.Reference;import cn.com.dubbo.action.SortAction;import cn.com.dubbo.service.SortService;public class Consumer {public static void main(String[] args) throws IOException {ClassPathXmlApplicationContext context =new ClassPathXmlApplicationContext(new String[] {"consumer.xml"});//远程consumer调用/*ClassPathXmlApplicationContext context =new ClassPathXmlApplicationContext(new String[] {"http://192.168.1.102/wiki/display/dubbo/consumer.xml"});*/ context.start(); SortAction sortAction=(SortAction)context.getBean("sortAction"); sortAction.sort();}}
配置文件consumer.xml:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 --> <dubbo:application name="annotation-consumer-of-arraysSort-app" /> <!-- 使用zookeeper注册中心暴露发现服务地址 --> <dubbo:registry address="zookeeper://127.0.0.1:2181" /> <!-- 扫描注解包路径,多个包用逗号分隔,不填pacakge表示扫描当前ApplicationContext中所有的类 --><dubbo:annotation package="cn.com.dubbo.service" /></beans>
然后我们启动Zookeeper:
运行服务提供端Provider类:
然后运行消费方Consumer类:
可以看到,我们的注解也实现了服务的暴露、注册与获取。
转载请注明出处:http://blog.csdn.net/acmman/article/details/73554728
阅读全文
0 0
- 【Dubbo分布式服务框架】3.基于注解的服务提供者和消费者
- 【Dubbo分布式服务框架】2.基于配置的服务提供者和消费者
- 【Dubbo分布式服务框架】4.基于API配置的服务提供者和消费者
- 阿里dubbo框架使用系列:服务提供者和消费者的创建和使用
- Dubbo服务提供者和消费者配置
- Dubbo服务环境搭建以及Dubbo服务的提供者和消费者配置详解
- Dubbo服务环境搭建以及Dubbo服务的提供者和消费者配置详解
- dubbo 4 服务消费者到提供者过程
- 基于Dubbo框架构建分布式服务
- 基于Dubbo框架构建分布式服务
- 基于Dubbo框架构建分布式服务(顶)
- 基于Dubbo框架构建分布式服务
- 基于Dubbo框架构建分布式服务
- 基于Dubbo框架构建分布式服务
- 基于Dubbo框架构建分布式服务
- 基于Dubbo框架构建分布式服务
- 基于Dubbo框架构建分布式服务
- 基于Dubbo框架构建分布式服务
- BFC原理及其应用
- iOS 封装下拉、上拉刷新控件 —— HERO博客
- 数据库操作如:插入操作,批处理与循环逐个插入性能比较
- java利用DecimalFormat保留小数点后两位,不足用0补齐
- Linux 学习笔记(二)文件管理
- 【Dubbo分布式服务框架】3.基于注解的服务提供者和消费者
- 利用表格建立如下网页(歌曲自选,至少选择3首歌曲)。
- linux下配置SSH免密码连接
- Maven项目下的Spring Quartz简单集成
- AngularJS—学习 ui-router
- PHP入门之字符串、Cookie和Session简介
- 51Nod 1019 逆序数
- resultset结果集封装为json的各种形式
- IPC--共享内存