1、创建父工程dubbo_parent,并在此工程的pom文件中加入依赖:
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.6.2</version>
</dependency>
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.9</version>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.9</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.3.16.RELEASE</version>
<scope>test</scope>
</dependency>
</dependencies>
2、创建dubbo_commons maven工程,用来存放接口:
3、创建消息提供者工程:
i、pom.xml中引入依赖:
<dependencies>
<dependency>
<groupId>com.soft</groupId>
<artifactId>dubbo_commons</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
ii、创建UserService 的实现类:
@Service
public class UserServiceImpl implements UserService {
public void sysHello(String msg) {
System.out.println("hello" + msg);
}
}
iii、创建配置文件dubbo_provider.xml:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<dubbo:application name="dubbo_provider"></dubbo:application>
<dubbo:registry address="multicast://224.5.6.7:1234"></dubbo:registry>
<dubbo:protocol port="20880" name="dubbo" ></dubbo:protocol>
<dubbo:annotation package="com.soft.service"></dubbo:annotation>
</beans>
iv、创建启动类:
public class UserServiceBoot {
public static void main(String[] args) throws IOException {
ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:dubbo_provider.xml");
System.in.read();
}
}
至此生产者工程创建完毕。
4、创建消费者工程:
i、引入依赖:
<dependencies>
<dependency>
<groupId>com.soft</groupId>
<artifactId>dubbo_commons</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
ii、编写dubbo_consumer.xml配置文件:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<dubbo:application name="dubbo_consumer"></dubbo:application>
<dubbo:registry address="multicast://224.5.6.7:1234"></dubbo:registry>
<dubbo:annotation package="com.soft.service"></dubbo:annotation>
</beans>
iii、编写测试类测试:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:dubbo_consumer.xml")
public class UserServceTest {
@Reference
private UserService userService;
@Test
public void test1(){
userService.sysHello("张三");
}
}
至此消费者工程创建完毕!
5、测试,先启动生产者,在启动消费者,执行结果
说明成功了。
具体工程代码已经传到了github上,地址:
工程所有代码
https://github.com/jackzc123/dubbo_parent01.git