然后导入相应的配置信息:
先配置dubbo:
然后配置zookeeper:
下图可知:dubbo依赖已经默认携带下载了spring很多的包
然后开始代码编程:
先定义一个接口:
然后写实现:
package com.test.service;
public interface UserService {
void register(String name , String password);
void login(String name,String password);
}
写好实现:
package com.test.service.impl;
import org.springframework.stereotype.Service;
import com.test.service.UserService;
/**
* 不考虑dubbo的任何问题,正常开发
* 只考虑spring管理的问题
* spring容易管理服务对象
* 1.bean标签管理
* 2.注解管理
* 使用注解管理, 容易导包错误. Dubbo也提供了service注解. 但是dubbo的service注解
* 有代码冲突. 在大多数情况下. 和spring-context, spring-tx有冲突.
* Dubbo的service注解, 在2.5.3版本中(使用spring2.5)注解无冲突
* @author Administrator
*
*/
@Service
public class UserServiceImpl implements UserService {
public void register(String name, String password) {
//可以写mapper 访问数据库 增加或查询等等的逻辑 我这里只是打印一下
System.out.println("register方法运行:"+name +";"+password);
}
public void login(String name, String password) {
System.out.println("login方法运行:"+name +";"+password);
}
}
配置
配置文件:applicationContext-dubbo
1.先配文件头:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
</beans>
2.dubbo配置. Dubbo的配置信息,必须导入新的namespace. namespace可以通过dubbo的jar包查询.
配置文件的约束信息所在位置: dubbo.jar/META-INF/dubbo.xsd
添加dubbo.xsd,不添加可能就不会有相应的提示啊什么的:
头空间导入--dubbo命名空间定义:
复制出来(注意上面的文件头中是添加过的):
dubbo.xsd :
dubbo标签配置
dubbo.xsd就在你的dubbo.jar包里,解压后在路径里dubbo\META-INF就可以找到
配置参考:https://blog.csdn.net/dhq_blog/article/details/81123712
比如要配置 dubbo的registry 标签配置如下操作搜索:
标签类型里面包括的就是子标签和属性列表。
当然也可以看api查看这些配置。
配置启动类:
启动类代码,注意配置文件的位置,放到resource下面的新建的spring包里了,直接放resource下面扫面不到:
package com.testDubo.test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
public static void main(String[] args) throws Exception {
// 1. 创建spring容器. 并扫描配置文件. ClassPathXmlApplicationContext继承了Thread
ClassPathXmlApplicationContext context =
new ClassPathXmlApplicationContext("classpath:spring/*.xml");
System.out.println("Provider 正在启动...");
// 2. 启动spring容器.
context.start();
System.out.println("provider 已启动...");
// 3. 线程阻塞. 如果线程终止, 则服务端代码停止. 发布的服务失效.
System.in.read();
}
}
windows启动zookeeper,然后启动启动类,注册中心前后对比:
打开zkCli连接zookeeper,然后
执行 ls /dubbo
如上图,已注册成功
再执行:
ls /dubbo/com.testDubo.service.UserService/providers
dubbo%3A%2F%2F172.17.16.1%3A20880%2Fcom.testDubo.service.UserService%3Fanyhost% Dtrue%26application%3Dtest-provider-001%26dubbo%3D2.5.7%26generic%3Dfalse%26int rface%3Dcom.testDubo.service.UserService%26methods%3Dlogin%2Cregister%26pid%3D6 52%26side%3Dprovider%26timestamp%3D1543123080324 |
以上是做过编码了
解码仿照如下:
如 之前:
转换后:
所以现在可以知道zookeeper上的dubbo节点里注册了所有的调用地址以及接口详细信息。