(1)、新建一个普通Maven项目,用于存放一些公共服务接口及公共的Bean等。

项目:

公共Bean:

 package cn.coreqi.entities;

 import java.io.Serializable;

 public class User implements Serializable {
private Integer id;
private String userName;
private String passWord;
private Integer enabled; public User() {
} public User(Integer id, String userName, String passWord, Integer enabled) {
this.id = id;
this.userName = userName;
this.passWord = passWord;
this.enabled = enabled;
} public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName;
} public String getPassWord() {
return passWord;
} public void setPassWord(String passWord) {
this.passWord = passWord;
} public Integer getEnabled() {
return enabled;
} public void setEnabled(Integer enabled) {
this.enabled = enabled;
} @Override
public String toString() {
return "User{" +
"id=" + id +
", userName='" + userName + '\'' +
", passWord='" + passWord + '\'' +
", enabled=" + enabled +
'}';
}
}

公共服务接口:

 package cn.coreqi.service;

 import cn.coreqi.entities.User;

 import java.util.List;

 public interface UserService {
public void addUser(User user);
public void delById(Integer id);
public void modifyUser(User user);
public User getById(Integer id);
public List<User> getList();
}

(2)、新建SpringBoot项目用作与服务提供者

  1)、添加依赖

    

         <dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency> <!--引入公共的Maven项目-->
<dependency>
<groupId>cn.coreqi</groupId>
<artifactId>springbootdubboapi</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>

*  dubbo-spring-boot-starter的版本与SpringBoot的版本之间有相应的对照关系

*  0.2.x的默认使用curator作为操作zookeeper的客户端。0.1.x需要自行导入zookeeper的客户端

 <dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency>

  2)、配置相关属性

 dubbo.application.name=boot-service-provider
dubbo.registry.address=192.168.205.128:2181
dubbo.registry.protocol=zookeeper
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
dubbo.monitor.protocol=registry server.port=8080

  3)、在要暴露服务的服务实现类上添加Dubbo的@Service注解,并将Spring的@Service注解替换为@Component注解

 package cn.coreqi.service.impl;

 import cn.coreqi.entities.User;
import cn.coreqi.service.UserService;
import com.alibaba.dubbo.config.annotation.Service;
import org.springframework.stereotype.Component; import java.util.ArrayList;
import java.util.List; @Component //org.springframework.stereotype.Component
@Service //com.alibaba.dubbo.config.annotation.Service
public class UserServiceImpl implements UserService {
private static List<User> users = new ArrayList<>();
static {
users.add(new User(1,"fanqi","123456",1));
users.add(new User(2,"zhangsan","123456",1));
users.add(new User(3,"lisi","123456",1));
users.add(new User(4,"wangwu","123456",1));
}
@Override
public void addUser(User user) {
users.add(user);
} @Override
public void delById(Integer id) {
for (User s:users){
if(s.getId() == id){
users.remove(s);
break;
}
}
} @Override
public void modifyUser(User user) {
delById(user.getId());
addUser(user);
} @Override
public User getById(Integer id) {
for (User s:users){
if(s.getId() == id){
return s;
}
}
return null;
} @Override
public List<User> getList() {
return users;
}
}

  4)、在主程序启动类上添加@EnableDubbo注解开启基于注解的Dubbo功能

 package cn.coreqi;

 import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication
@EnableDubbo
public class SpringbootdubboserviceproviderApplication { public static void main(String[] args) {
SpringApplication.run(SpringbootdubboserviceproviderApplication.class, args);
} }

(3)、新建SpringBoot项目用作与服务消费者

  1)、添加依赖(和服务提供者相同。此处略)

  2)、配置相关属性

  

 dubbo.application.name=boot-service-consumer
dubbo.registry.address=zookeeper://192.168.205.128:2181
dubbo.monitor.protocol=registry server.port=9090

  3)、在远程引用服务的属性上添加@Reference注解

 package cn.coreqi.controller;

 import cn.coreqi.entities.User;
import cn.coreqi.service.UserService;
import com.alibaba.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import java.util.List; @Controller
public class UserController {
@Reference
public UserService userService; @ResponseBody
@RequestMapping("/users")
public List<User> getUsers(){
return userService.getList();
}
}

  4)、在主程序启动类上添加@EnableDubbo注解开启基于注解的Dubbo功能(和服务提供者相同。此处略)

最新文章

  1. C#动态调用WCF接口,两种方式任你选。
  2. JDBC中的ResultSet
  3. 读高性能JavaScript编程学英语 第一章第三页第一段话
  4. SPOJ Pouring Water
  5. zw版【转发&#183;台湾nvp系列Delphi例程】HALCON HImage与Bitmap格式转换
  6. jQuery 黑白插件
  7. ZOJ3732 Graph Reconstruction Havel-Hakimi定理
  8. ci 中使用 pdo 连接 mysql
  9. python高级编程之装饰器04
  10. php解决与处理网站高并发 大流量访问的方法
  11. 使用Python Shapefile Library创建和编辑Shapefile文件
  12. PGM:图模型学习概述
  13. 重新初始化VS2010
  14. javascript排序算法-归并排序
  15. 如何查找MySQL中查询慢的SQL语句(转载)
  16. JAVA接口里面的变量
  17. js入门关于函数
  18. 承接VR外包|AR外包|Unity3D外包|UE4外包(内附案例演示)
  19. layui 弹窗的iframe 父子界面相互传值
  20. Cocos Creator下删除AnySDK步骤

热门文章

  1. Aladdin and the Flying Carpet LightOJ - 1341 (素数打表 + 算术基本定理)
  2. hdu 4348 To the moon (主席树 区间更新)
  3. MT【72】一个不等式
  4. 【BZOJ1814】Ural 1519 Formula 1 (插头dp)
  5. luogu4269 Snow Boots G (并查集)
  6. CF1131D Gourmet choice(并查集,拓扑排序)
  7. android广播(内部类)使用
  8. 内存分布图,errno
  9. python3之rabbitMQ
  10. vs2010中使用 git