springboot整合dubbo

springboot整合dubbo

1.服务提供者

pom:

spring boot整合mybatis 后在pom中添加dubbo依赖

<!-- Spring Boot Dubbo  -->
        <dependency>
            <groupId>io.dubbo.springboot</groupId>
            <artifactId>spring-boot-starter-dubbo</artifactId>
            <version>1.0.0</version>
        </dependency>

application.properties中dubbo配置

## Dubbo 服务消费者配置
spring.dubbo.application.name=provider
spring.dubbo.registry.address=zookeeper://10.25.25.145:2181
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880
#duubbo扫描service
spring.dubbo.scan=com.baosight.service

这里有两个地方需要注意,一个是如果用了热加载插件spring-boot-devtools,在pom中一定要去掉,否则启动报错
另一个就是service实现类中的service注解要换成dubbo的,application.properties中dubbo中已经配置了dubbo扫描,可以扫描到这个注解并注册到zookeeper,

//import org.springframework.stereotype.Service;
import com.alibaba.dubbo.config.annotation.Service;
@Service(version = "1.0.0")
public class TSUserServiceImpl implements TSUserService{
    @Autowired
    private TSUserDao tSUserDao;

    public List<TSUser> selectTSUser(Assist assist){
        return tSUserDao.selectTSUser(assist);
    }
 }

zookeeper安装配置可以参考

2.服务消费端

pom :

pom中加入

<!-- Spring Boot Dubbo  -->
        <dependency>
            <groupId>io.dubbo.springboot</groupId>
            <artifactId>spring-boot-starter-dubbo</artifactId>
            <version>1.0.0</version>
        </dependency>

application.properties中dubbo配置

## 改变端口
server.port=8081

## Dubbo 服务消费者配置
spring.dubbo.application.name=consumer
spring.dubbo.registry.address=zookeeper://10.25.25.145:2181
spring.dubbo.scan=com.baosight.service

service:

消费端的service也要有接口,要和服务提供方一致,可以直接将服务提供方的service接口复制过来,也可以将servcie接口单独放在一个model中,直接依赖过来,在本例中我是直接复制过来的

public interface TSUserService{

    /**
     * 获得TSUser数据集合,可以通过辅助工具Assist进行条件查询,如果没有条件则传入null
     * @param assist
     * @return
     */
    List<TSUser> selectTSUser(Assist assist);
    }

接下来的一个service类相当于service接口的实现类,作用是引入注册到zookeeper中的service

@Component
public class TSUserDubboService {

    @Reference(version = "1.0.0")
    private TSUserService tSUserService;

    public List<TSUser> selectTSUser(Assist assist){
        return tSUserService.selectTSUser(assist);
    }
}

@Component 这个注解的作用是将这个类注入到spring容器中,在控制层需要注入,作用和@service。@Reference是dubbo的注解,作用是引入注册到zookeeper中的service到这个类中。

控制层

@RestController
public class Contorller {

    @Autowired
    private TSUserDubboService tSUserDubboService;

    @RequestMapping("/list")
    public List test(){
        return tSUserDubboService.selectTSUser(new Assist());
    }
}

先启动zookeeper,之后启动服务提供方,之后启动服务消费方,访问http://localhost:8081/list
参考代码示例

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值