最近在学习dubbo,想着作一些笔记,从来没有在csdn上面写过博客,今天献出第一次,哈哈,直接上代码
目前创新互联建站已为1000多家的企业提供了网站建设、域名、雅安服务器托管、成都网站托管、企业网站设计、青山湖网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
一、创建父工程
<?xml version="1.0" encoding="UTF-8"?>4.0.0 org.springframework.boot spring-boot-starter-parent 2.2.2.RELEASE com.dubbo demo01 1.0.0 pom Spring Boot2.x 整合 dubbo api provider consumer UTF-8 UTF-8 1.8 2.7.5 4.2.0 3.4.12 org.apache.dubbo dubbo-spring-boot-starter ${dubbo.version} org.apache.curator curator-recipes ${curator.version} org.apache.zookeeper zookeeper ${zookeeper.version} org.springframework.boot spring-boot-devtools runtime true org.projectlombok lombok true
二、创建提供者与消费者共用的api
该模块没有什么好说的,提供者和消费者都需要使用的接口api,提供者和消费者都需要引入该模块
<?xml version="1.0" encoding="UTF-8"?>demo01 com.dubbo 1.0.0 4.0.0 api
// 注解都是lombok的,真的很方便 @Data @Builder @NoArgsConstructor @AllArgsConstructor(access = AccessLevel.PRIVATE) public class User implements Serializable { private Integer id; private String name; private Integer age; }
public interface UserService { User getUserById(Integer id); }
三、创建提供者
<?xml version="1.0" encoding="UTF-8"?>4.0.0 com.dubbo 1.0.0 demo01 com.dubbo provider 0.0.1-SNAPSHOT provider Demo project for Spring Boot org.springframework.boot spring-boot-starter-web org.apache.dubbo dubbo-spring-boot-starter org.apache.curator curator-recipes org.apache.zookeeper zookeeper com.dubbo api 1.0.0 org.springframework.boot spring-boot-starter-test test org.junit.vintage junit-vintage-engine org.springframework.boot spring-boot-maven-plugin
dubbo: application: # 应用名称 name: user-provider protocol: # 协议名称 name: dubbo # 协议端口 port: 20880 registry: # 注册中心地址 address: zookeeper://192.168.104.231:2181
@SpringBootApplication // 提供服务的应用必须配置此项 @DubboComponentScan("com.dubbo.provider.service") public class ProviderApplication { public static void main(String[] args) { SpringApplication.run(ProviderApplication.class, args); } }
@Component // 该service是org.apache.dubbo.config.annotation.Service @Service public class UserServiceImpl implements UserService { @Override public User getUserById(Integer id) { User user = User.builder() .id(id) .name("张三") .age(20 + id) .build(); return user; } }
四、创建消费者
<?xml version="1.0" encoding="UTF-8"?>4.0.0 com.dubbo 1.0.0 demo01 com.dubbo consumer 0.0.1-SNAPSHOT consumer Demo project for Spring Boot org.springframework.boot spring-boot-starter-web org.apache.dubbo dubbo-spring-boot-starter org.apache.curator curator-recipes org.apache.zookeeper zookeeper com.dubbo api 1.0.0 org.springframework.boot spring-boot-starter-test test org.junit.vintage junit-vintage-engine org.springframework.boot spring-boot-maven-plugin
# 端口 server: port: 8081 dubbo: application: name: user-consumer protocol: name: dubbo port: 20880 registry: address: zookeeper://192.168.104.231:2181
@SpringBootApplication public class ConsumerApplication { public static void main(String[] args) { SpringApplication.run(ConsumerApplication.class, args); } }
@RestController @RequestMapping("/user") public class ConsumerController { @Reference private UserService userService; @GetMapping("/{id}") public User getUserById(@PathVariable int id) { return userService.getUserById(id); } }
五、启动并访问
先启动provider,启动结果如下
启动consumer,启动结果如下
浏览器访问:http://localhost:8081/user/4
好了,到此就完成了最基本的springboot与dubbo的整合,更多的dubbo的api请查阅 dubbo官方文档
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。