父子工程,父类是 quickstart生产者与消费者是Spring Initializr
(1.)生产者目录
(2.)创建生产者pom依赖
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
<dependency>
<groupId>com.alibaba.spring.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
(1. )创建生产者service接口
package com.qzy.provide_consumer.service;
public interface IDoSomeService {
public String sayHi();
}
(2. )创建生产者serviceimpl类
package com.qzy.provide_consumer.service.impl;
import com.alibaba.dubbo.config.annotation.Service;
import com.qzy.provide_consumer.service.IDoSomeService;
import org.springframework.stereotype.Component;
//利用Dubbo暴露出一个接口
@Service(interfaceClass= IDoSomeService.class)
@Component
public class IDoSomeServiceImpl implements IDoSomeService {
@Override
public String sayHi() {
System.out.println("生产者生产的IDoSomeService服务,中的sayHi方法");
return "SpringBoot Dubbo";
}
}
(3. )配置application.properties
spring.dubbo.application.name=provider
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880
(4. )测试类
package com.qzy.provide_consumer;
import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@EnableDubboConfiguration
public class SpringbootDubboProviderApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootDubboProviderApplication.class, args);
System.out.println("Dubbo接口暴露成功~");
}
}
(5. )启动 启动前打开zookeeper
(8.)消费者目录
(9.)创建消费者pom依赖 和 生产者一样
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
<dependency>
<groupId>com.alibaba.spring.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
(10. )创建消费者service接口
package com.qzy.provide_consumer.service;
public interface IDoSomeService {
public String sayHi();
}
(11.)创建消费者Controller
package com.qzy.provide_consumer.controller;
import com.alibaba.dubbo.config.annotation.Reference;
import com.qzy.provide_consumer.service.IDoSomeService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class DubboController {
@Reference
private IDoSomeService iDoSomeService;
@RequestMapping("/dubbo")
public String dubbo(){
String returnValue = iDoSomeService.sayHi();
return returnValue;
}
}
(12.)配置application.properties 记得改端口号
spring.dubbo.application.name=consumer
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
server.port=8081
(13. )测试
package com.qzy.provide_consumer;
import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@EnableDubboConfiguration
public class SpringbootDubboConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootDubboConsumerApplication.class, args);
}
}
生产者会把输出的话打印出来