IDEA下将dubbo简单项目跑Demo(2019.12版)

项目架构(聚合项目,父子模块)

  • src没用,所以删去
  • 选择maven项目,不用勾选模板骨架,直接main方法,因为不用到服务器
  • 顺序是按照:添加pom依赖-接口实现类-配置文件
    IDEA下将dubbo简单项目跑Demo(2019.12版)_第1张图片

    项目环境

  • IDE:IntelliJ IDEA15.0.6
  • JDK:1.8.0_161
  • 项目管理工具:Maven项目(没勾选quickstart等模板)
  • Spring: 4.3.21
  • dubbo:2.5.3

1、首先创建父模块dubbo-parent

其中pom.xml的内容如下:



    4.0.0

    com.zrl
    dubbo-parent
    pom
    1.0-SNAPSHOT

    
        dubbo-commons
        dubbo-provider
        dubbo-consumer
    

2、创建公共子模块 dubbo-commons

IDEA下将dubbo简单项目跑Demo(2019.12版)_第2张图片

1.pom.xml为




    
        dubbo-parent
        com.zrl
        1.0-SNAPSHOT
    

    4.0.0

    dubbo-commons

2.创建com.zrl.service下UserService.java

package com.zrl.service;

/**
 * Created by Roni on 2019/12/2.
 */
public interface UserService {
    public String sayHello(String msg);
}

3、服务提供者 dubbo-provider

IDEA下将dubbo简单项目跑Demo(2019.12版)_第3张图片

1.pom.xml



    
        dubbo-parent
        com.zrl
        1.0-SNAPSHOT
    
    4.0.0

    dubbo-provider

    
        
        
            com.zrl
            dubbo-commons
            1.0-SNAPSHOT
        
        
        
            org.springframework
            spring-context
            4.3.21.RELEASE
        
        
        
            org.slf4j
            slf4j-log4j12
            1.7.25
        
        
        
            com.alibaba
            dubbo
            2.5.3
            
                
                    spring
                    org.springframework
                
            
        
        
        
            com.github.sgroschupf
            zkclient
            0.1
        
    

2.com.zrl.service.impl下UserServiceImpl

package com.zrl.service.impl;

import com.zrl.service.UserService;

/**
 * Created by Roni on 2019/12/2.
 */
public class UserServiceImpl implements UserService {

    public String sayHello(String msg) {
        System.out.println("服务端接收:"+msg);
        return "你好啊";
    }
}

3.java下App类

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * Created by Roni on 2019/12/2.
 */
public class App {
    public static void main(String[] args) throws Exception{
        ApplicationContext ac =
                new ClassPathXmlApplicationContext("applicationContext.xml");
        //挂起当前线程,如果没有该行代码,服务提供者进程会消亡,服务消费者就发现不了提供者了
        Thread.currentThread().join();

    }
}

4.resources目录下两个配置文件
4.1:applicationContext.xml




    
    
    
    
    
    
    
    
    
    
    

4.2:log4j.properties:

log4j.rootLogger=INFO,A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout

4、服务消费者 dubbo-consumer

IDEA下将dubbo简单项目跑Demo(2019.12版)_第4张图片

1.pom.xml



    
        dubbo-parent
        com.zrl
        1.0-SNAPSHOT
    
    4.0.0

    dubbo-consumer
    
        
        
            com.zrl
            dubbo-commons
            1.0-SNAPSHOT
        
        
        
            org.springframework
            spring-context
            4.3.21.RELEASE
        
        
        
            org.slf4j
            slf4j-log4j12
            1.7.25
        
        
        
            com.alibaba
            dubbo
            2.5.3
            
                
                    spring
                    org.springframework
                
            
        
        
        
            com.github.sgroschupf
            zkclient
            0.1
        
    

2.java下TestConsumer类

import com.zrl.service.UserService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * Created by Roni on 2019/12/2.
 */
public class TestConsumer {
    public static void main(String[] args) {
        ApplicationContext ac =
                new ClassPathXmlApplicationContext("applicationContext.xml");
        UserService service = ac.getBean(UserService.class);
        System.out.println(service.sayHello("hello provider"));
    }
}

3.resources目录下两个配置文件

同上顺序:



    
    
    
    
    
    
    
    
log4j.rootLogger=INFO,A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout

运行成功界面

服务提供者 dubbo-provider 下 App类

IDEA下将dubbo简单项目跑Demo(2019.12版)_第5张图片

服务消费者 dubbo-consumer 下 TestConsumer 类

IDEA下将dubbo简单项目跑Demo(2019.12版)_第6张图片

若在zkCli.cmd下查看ls dubbo/

参考文章

你可能感兴趣的:(IDEA下将dubbo简单项目跑Demo(2019.12版))