Dubbo学习之简单的demo(注解版)

当前环境:与上面的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版权协议,转载请附上原文出处链接和本声明。