SpringBoot整合Dubbo
发布日期:2021-05-09 04:58:03 浏览次数:14 分类:博客文章

本文共 3980 字,大约阅读时间需要 13 分钟。

通过三个工程演示整合过程

工程一:API工程:服务端与客户端共同需要引入的工程

 

 pom:无特殊依赖,下边内容供服务端与客户端引用此工程使用

com.boot.dubbo.demo
dubbo-api
1.0-SNAPSHOT

实体类:

package com.boot.dubbo.demo.domain;import java.io.Serializable;/** * 用户信息类 */public class UserInfo implements Serializable {    private String account;    private String password;    public String getAccount() {        return account;    }    public void setAccount(String account) {        this.account = account;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }}

API:

package com.boot.dubbo.demo.api;import com.boot.dubbo.demo.domain.UserInfo;public interface UserService {    // 定义用户登录的api    UserInfo login(UserInfo user);}

工程二:生产者工程:服务端

pom

com.boot.dubbo.demo
boot-dubbo-api
1.0-SNAPSHOT

dubbo必须依赖项:(使用zk)

com.alibaba.spring.boot
dubbo-spring-boot-starter
2.0.0
com.101tec
zkclient
0.10
org.apache.zookeeper
zookeeper
3.4.10
org.slf4j
slf4j-log4j12
log4j
log4j

application.yml:配置dubbo配置项

spring:  dubbo:    application:      name: dubbo-provider    protocol:      name: dubbo      port: 20880    registry:      address: zookeeper://192.168.3.101:2181

 

package com.boot.dubbo.demo.dubboprovider.service;import com.alibaba.dubbo.config.annotation.Service;import com.boot.dubbo.demo.api.UserService;import com.boot.dubbo.demo.domain.UserInfo;import org.springframework.stereotype.Component;@Component@Service(interfaceClass = UserService.class) //注意是dubbo的注解,向外暴露接口public class UserServiceImpl implements UserService {    public UserInfo login(UserInfo user) {        UserInfo reUser = new UserInfo();        reUser.setAccount("登录的账号为:"+user.getAccount());        reUser.setPassword("登录的密码为:"+user.getPassword());        return reUser;    }}

 

package com.boot.dubbo.demo.dubboprovider;import com.alibaba.dubbo.spring.boot.annotation.EnableDubbo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication@EnableDubbo // 启用dubbopublic class DubboProviderApplication {    public static void main(String[] args) {        SpringApplication.run(DubboProviderApplication.class, args);    }}

 

工程三:消费者工程:客户端

pom依赖与工程二相同

application.yml配置:

spring:  dubbo:    application:      name: dubbo-provider    protocol:      name: dubbo      port: 20880    registry:      address: zookeeper://192.168.3.101:2181server:  port: 8081

Controller

package com.boot.dubbo.demo.dubboconsumer.controller;import com.alibaba.dubbo.config.annotation.Reference;import com.boot.dubbo.demo.api.UserService;import com.boot.dubbo.demo.domain.UserInfo;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class UserController {    @Reference // 引用dubbo服务器提供服务器接口    private UserService userService;    @GetMapping("/login")    public UserInfo login(UserInfo userInfo) {        return userService.login(userInfo);    }}

 

package com.boot.dubbo.demo.dubboconsumer;import com.alibaba.dubbo.spring.boot.annotation.EnableDubbo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication@EnableDubbopublic class DubboConsumerApplication {    public static void main(String[] args) {        SpringApplication.run(DubboConsumerApplication.class, args);    }}

 

这样客户端就可以通过Dubbo调用服务端提供的方法了

上一篇:SpringBoot整合Redis-RedisTemplate
下一篇:整合SSM框架应用

发表评论

最新留言

感谢大佬
[***.8.128.20]2025年04月04日 14时39分30秒