阅读dubbo中文官方文档
项目中使用的注册中心是Windows下安装的单体zookeeper,其中安装过程及配置不再赘述
1、新建一个父项目,导入以下依赖
org.springframework.boot
spring-boot-starter-parent
2.2.2.RELEASE
org.apache.curator
curator-recipes
4.2.0
org.apache.curator
curator-framework
4.2.0
org.springframework.boot
spring-boot-starter
2.2.2.RELEASE
org.springframework.boot
spring-boot-starter-web
2.2.2.RELEASE
org.apache.dubbo
dubbo-spring-boot-starter
2.7.3
新建dubbo-api模块,创建接口:com.xxx.dubbo.service.ApiService。此处的pom.xml文件不需要添加任何依赖。
public interface ApiService {
String apiMethod();
}
新建模块dubbo-provider
在pom.xml中添加以下依赖:
dubbo_api
com.xxx
1.0-SNAPSHOT
org.springframework.boot
spring-boot-starter
org.apache.dubbo
dubbo-spring-boot-starter
org.apache.curator
curator-recipes
org.slf4j
slf4j-api
org.apache.curator
curator-framework
注意:一定要依赖进去API项目
新建application.yml文件:
新建API接口的实现类:com.xxx.dubbo.service.impl.ApiServiceImpl,注意:此处的@service导包要正确:
import org.apache.dubbo.config.annotation.Service;
@Service
public class ApiServiceImpl implements ApiService {
@Override
public String apiMethod() {
System.out.println("provider......");
return "provider";
}
}
新建启动类:com.xxx.ProviderApplication
@SpringBootApplication
@EnableDubbo
public class ProviderApplication {
public static void main(String[] args) {
SpringApplication.run(ProviderApplication.class,args);
}
}
到此,dubbo中的provider搭建结束
新建模块dubbo-consumer
在pom.xml中添加一下依赖:
注意:这里也一定要依赖进去API项目
dubbo_api
com.xxx
1.0-SNAPSHOT
org.springframework.boot
spring-boot-starter-web
org.apache.dubbo
dubbo-spring-boot-starter
org.apache.curator
curator-recipes
org.apache.curator
curator-framework
新建application.yml文件
新建业务接口:com.xxx.service.ConsumerService
public interface ConsumerService {
String consumerMethod();
}
新建接口实现类:com.xxx.service.impl.ConsumerServiceImpl
调用服务使用@Reference注解,不要导错包了,有两个,使用org.apache.dubbo.config.annotation.Reference
此处的@Service注解使用的org.springframework.stereotype.Service
@Service
public class ConsumerServiceImpl implements ConsumerService {
@Reference
private ApiService apiService;
@Override
public String consumerMethod() {
System.out.println("consumer...");
return apiService.apiMethod();
}
}
新建controller:com.xxx.controller.ConsumerController
@Controller
public class ConsumerController {
@Autowired
private ConsumerService consumerServicec;
@GetMapping("/show")
@ResponseBody
public String show(){
return consumerServicec.consumerMethod();
}
}
新建启动类:com.xxx.ConsumerApplication
@SpringBootApplication
@EnableDubbo
public class ConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumerApplication.class,args);
}
}
到此,provider和consumer全部搭建完毕,启动项目在浏览器中访问即可,一定要先启动provider项目再启动consumer项目。当然,做这两件事之前,你一定要保证你的zookeeper是起着的
启动之后,你就会发现,不论是provider项目还是consumer项目控制台都会出现一个警告信息:
这个警告并不影响使用,因为dubbo默认使用的log4j日志,但是你并没有加入log4j的配置文件log4j.properties,没有强迫症的话不用管它,如果非要处理的话,只需要在项目的resource目录下添加添加相应配置文件即可,至于这个配置文件,下篇博客考虑一下…
浏览器访问:
控制台输出(provider):
控制台输出(consumer):