当前环境:与上面的xml版的一致
1.声明
当前项目的父项目都是xml配置版的,DubboParentDemo
2.创建子项目dubbo-annotation-provider
2.1 添加依赖
<dependency>
<artifactId>dubbo-api</artifactId>
<groupId>dubbo-api</groupId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
2.2 创建配置文件dubbo-provider.properties
dubbo.application.name=annotation-provider
dubbo.registry.address=zookeeper://192.168.133.129:2181
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
2.3 创建服务实现类
/**
* @description 创建服务实现类
* @author hy
* @date 2019-10-07
*/
@Service//这里需要使用Dubbo的@Service注解
public class DemoServiceImpl implements DemoService {
@Override
public String say(String context) {
return "Hello "+context+" !";
}
}
2.4 创建Provider类
/**
* @description 使用注解的方式配置dubbo--服务提供端
* @author hy
* @date 2019-10-07
*/
@Configuration
@EnableDubbo(scanBasePackages = "com.hy.dubbo.annotation.provider.dao.impl")//扫描添加了@Service的注解
@PropertySource("classpath:dubbo-provider.properties")//配置文件的扫描
public class Provider {
public static void main(String[] args) throws IOException {
AnnotationConfigApplicationContext context=new AnnotationConfigApplicationContext(Provider.class);
context.start();
System.in.read(); //需要等待
}
}
3.创建子项目dubbo-annotation-customer
3.1 添加依赖
<dependency>
<artifactId>dubbo-api</artifactId>
<groupId>dubbo-api</groupId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
3.2 添加dubbo-customer.properties文件
dubbo.application.name=annotation-consumer
dubbo.registry.address=zookeeper://192.168.133.129:2181
dubbo.consumer.timeout=3000
3.3 创建Customer类
/**
* @description 使用注解的方式创建dubbo项目--客户端
* @author hy
* @date 2019-10-07
*/
@Configuration
@EnableDubbo(scanBasePackages = "com.hy.dubbo.annotation.customer")//启用Dubbo扫描并注入对象
@PropertySource("classpath:dubbo-customer.properties")//扫描配置文件
public class Customer {
@Reference
DemoService demoService;//这里需要使用Dubbo来进行注入
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Customer.class);
Customer customer = context.getBean(Customer.class);
String say = customer.demoService.say("World");
System.out.println(say);
}
}
4.测试
先启动Provider类,再启动Customer类
结果与前面的xml和java版的完全一致
5.总结
1.使用dubbo注解的时候需要使用@Service
和@Reference
注解分别标注:Service实现类
和客户端使用的接口
2.当前的dubbo注解版依赖于Spring的IOC容器
以上纯属个人见解,如有问题请联系本人!
版权声明:本文为weixin_45492007原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。