阿里dubbo框架使用系列:服务提供者和消费者的创建和使用

新建一个maven工程

阿里dubbo框架使用系列:服务提供者和消费者的创建和使用_第1张图片


创建一个服务接口

package com.pcx.dubbo_facade;


public interface DemoService {
    String sayHello(String name);
}

运行 clean install打包dubbo-facade

阿里dubbo框架使用系列:服务提供者和消费者的创建和使用_第2张图片


接下来创建 dubbo-provider 工程

阿里dubbo框架使用系列:服务提供者和消费者的创建和使用_第3张图片

pom.xml里面引用刚才的服务接口的jar包

			
				com.pcx
			    	dubbo-facade
				 0.0.1-SNAPSHOT			
			


编写服务实现类


package com.pcx.dubbo_prodiver;

import org.springframework.stereotype.Service;

import com.pcx.dubbo_facade.DemoService;

@Service("demoService")
public class DemoServiceImpl implements DemoService {

	public String sayHello(String name) {
		return "Hello " + name;
	}
	
}

在resource目录下编写两个spring配置文件

dubbo-provider.xml 




	
	

	
	

	
	
		
	
	

  

spring-context.xml




	
	

	
	
	

	
在src/test/java路径下编写测试类启动dubbo服务

package com.pcx.dubbo_prodiver;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class DubboProvider {
	private static final Log log = LogFactory.getLog(DubboProvider.class);

	public static void main(String[] args) {
		try {
			ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring-context.xml");
			context.start();
		} catch (Exception e) {
			log.error("== DubboProvider context start error:",e);
		}
		synchronized (DubboProvider.class) {
			while (true) {
				try {
					DubboProvider.class.wait();
				} catch (InterruptedException e) {
					log.error("== synchronized error:",e);
				}
			}
		}
	}
}

运行这个测试类,我们可以在dubbo控制台看到我们暴露的服务

阿里dubbo框架使用系列:服务提供者和消费者的创建和使用_第4张图片

创建一个新工程名为dobbo-consumer

阿里dubbo框架使用系列:服务提供者和消费者的创建和使用_第5张图片



在pom.xml下依赖我们的服务接口的jar包

			
				com.pcx
			    dubbo-facade
				 0.0.1-SNAPSHOT			
			


在src/main/resource/目录下新增两个spring配置文件

dubbo-consumer.xml




	
	

	
	
	
	
	
	


  

spring-context.xml





	
	


编写调用服务的测试类在src/test/java

package com.pcx.dubbo_consumer;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.pcx.dubbo_facade.DemoService;


public class Consumer {
    private static final Log log = LogFactory.getLog(Consumer.class);
    
    public static void main(String[] args) throws InterruptedException {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring-context.xml");
        context.start();
        DemoService demoService = (DemoService)context.getBean("demoService"); 
        String hello = demoService.sayHello("world");
        log.info("打印"+hello);
      
        
        Thread.sleep(100000);

    }

}
运行测试类

阿里dubbo框架使用系列:服务提供者和消费者的创建和使用_第6张图片

调用成功

此时可以在dubbo控制台看到相关信息

阿里dubbo框架使用系列:服务提供者和消费者的创建和使用_第7张图片

你可能感兴趣的:(dubbo,web开发,分布式)