教你springboot+dubbo快速启动的方法

网友投稿 1344 2022-10-14

教你springboot+dubbo快速启动的方法

教你springboot+dubbo快速启动的方法

前言

现在用dubbo的太多了,我到现在还不熟悉,这太不应该了,这次好好看了一下dubbo,终于把基本的启动框架搭好了。dubbo的角色宽泛的分未三类provider,comsumer,注册中心。我这里的注册中心用的是zookeeper,并且是在windows环境下做的。

dubbo和springboot整合的依赖:

com.alibaba.boot

dubbo-spring-boot-starter

0.2.0

org.springframework.boot

spring-boot-starter-web

实操

1、创建一个大的maven项目,将里面的src目录删掉,这只是为了在这个大的maven项目里面添加provider和comsumer两个模块。之后创建两个springboot项目,分别是provider和comsumer,创建好的结构:

这里的common模块我是把entity和接口类抽出来,不抽出来也是可以的

2、common(这里面没有任何依赖,就是个maven项目)

entity:

public class User {

private Long id;

private String name;

private Integer age;

public User() {

}

public User(Long id, String name, Integer age) {

this.id = id;

this.name = name;

this.age = age;

}

public Long getId() {

return id;

}

public void setId(Long id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Integer getAge() {

return age;

}

public void setAge(Integer age) {

this.age = age;

}

@Override

public String toString() {

return "User{" +

"id=" + id +

", name='" + name + '\'' +

", age=" + age +

'}';

}

}

UserService:

public interface UserService {

User query(Long id);

}

OrderService:

public interface OrderService {

String getName(Long id);

}

3、provider(添加dubbo依赖并把刚才写的公共模块依赖进来)

org.example

common

1.0-SNAPShttp://HOT

OrderServiceImpl:

import com.alibaba.dubbo.config.annotation.Service;

//这里的service注解用的是dubbo

@Service

public class OrderServiceImpl implements OrderService {

@Autowired

private UserService userService;

@Override

public String getName(Long id) {

User query = userService.query(id);

return query.getName();

}

}

UserServiceImpl:

import com.alibaba.dubbo.config.annotation.Service;

@Service

public class UserServiceImpl implements UserService {

@Override

public User query(Long id) {

User user = new User(1L, "张三", 12);

return user;

}

}

启动类上添加@EnableDubbo

application.properties:

#服务名称

dubbo.application.name=provice

#注册中心

dubbo.registry.address=127.0.0.1:2181

dubbo.registry.protocol=zookeeper

#通信协议

dubbo.protocol.name=dubbo

dubbo.protocol.port=20880

4、comsumer(添加dubbo依赖,common模块,web依赖)

OrderController:

import com.alibaba.dubbo.config.annotation.Reference;

@RestController

public class OrderController {

//添加dubbo的reference注解,进行远程调用

@Reference

OrderServicehttp:// orderService;

@RequestMapping("getName")

String getName(Long id){

String name = orderService.getName(id);

return name;

}

}

启动类上加上@EnableDubbo

application.properties:

#服务名称

dubbo.application.name=comsumer

#注册中心

dubbo.registry.protocol=zookeeper

dubbo.registry.address=127.0.0.1:2181

测试

启动zookeeper,provider和comsumer.

注:

1、首先http://要启动zookeeper,-windows版压缩包,修改conf配置文件,启动zkServer.cmd命令。具体怎么弄这里就不写了,网上很多,我这里主要练习的是dubbo.2、启动类上需要添加@EnableDubbo3、comsumer中调用服务用@Reference,因为是远程调用,所以 @Autowired肯定是没用的了4、provider中的实现类需要用dubbo的@Service注解

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:部分之前的操作笔记
下一篇:关于UbuntuMate的两个问题点:SSH问题处理与自启动项配置
相关文章

 发表评论

暂时没有评论,来抢沙发吧~