最近在看dubbo框架,做一下自己的学习成果记录。
一、provider端
二、consumer端
三、公共代码-api.jar
转发请注明该原文地址:https://blog.csdn.net/pro_spect/article/details/85009279
完整项目代码在GitHub:
https://github.com/jhaooli/my_dubbo
思路:
1.新建一个整体的maven项目
2.在maven项目内创建如下三个项目:
—2.1consumer的maven项目
consumer端代码:
public class PersonTest {
public static void main(String[] args) {
//测试常规服务
ClassPathXmlApplicationContext context =
new ClassPathXmlApplicationContext("dubbo-consumer.xml");
context.start();
System.out.println("consumer start");
Person person = context.getBean(QueryService.class).getOnePerson("徐");
System.out.println("这个人的名字是 "+person.getName());
System.out.println("person - " + person.toString());
}
}
—2.2provider的maven项目
这里存放着服务的具体实现方式
privider端实现类的代码:
@Service
public class PersonServiceImpl implements QueryService {
@Override
public Person getOnePerson(String s) {
Person person = new Person();
person.setName(s+randomString());
return person;
}
public String randomString(){
String str="";
for(int i=0;i<4;i++){
char c=(char)(0x4e00+(int) (Math.random()*(0x9fa5-0x4e00+1)));
str+=c;
}
return str;
}
}
—2.3consur与provider都用到的一些类的代码
,如
xxService类以及其POJO(这个POJO要实现序列化,因为dubbo是一个远程rpc调用框架,经过网络传输)
这个项目就命名为my_dubbo-api好了
POJO类:
然后写service,
参考资料:
【1】序列化知识https://www.cnblogs.com/xdp-gacl/p/3777987.html
【2】JAVA编译问题https://blog.csdn.net/jdjdndhj/article/details/70256989
【3】zkNodeNotFound错误https://blog.csdn.net/HeatDeath/article/details/79174575以及解决该问题引入的依赖查询地址https://mvnrepository.com/artifact/com.101tec/zkclient
【4】具体汉字提供方法https://blog.csdn.net/skyline_ding/article/details/79610722