springboot + dubbo +maven例子


maven管理。用MyEclipse 2017

項目地址:https://github.com/hannibal2017/p2p/tree/simpleDemo

項目結構如下圖:

步驟如下:

1,new - maven project ,新建p2p-dubbo,package選pom

2,在項目p2p-dubbo建立子項目,右鍵-maven-new maven module

分別創建子項目:p2p-dubbo-api,p2p-dubbo-provider,p2p-dubbo-consumer

3,父項目Pom.xml,導入文件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.luo</groupId>
    <artifactId>p2p-dubbo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>
    <build />
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>1.8</java.version>
        <dubbo.version>2.6.1</dubbo.version>

    </properties>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.6.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- dubbo框架 -->
        <dependency>
            <groupId>io.dubbo.springboot</groupId>
            <artifactId>spring-boot-starter-dubbo</artifactId>
            <version>1.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.6</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
    <modules>
        <module>p2p-dubbo-api</module>
        <module>p2p-dubbo-provider</module>
        <module>p2p-dubbo-consumer</module>
    </modules>
</project>

4,p2p-dubbo-api新建立一個接口DemoService

package com.luo.test;

public interface DemoService {
    String test();
}

5,提供者:p2p-dubbo-provider。

   pom.xml引入子項目:

<dependencies>
        <dependency>
            <groupId>com.luo</groupId>
            <artifactId>p2p-dubbo-api</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>

    </dependencies>

 

  實現接口:

package com.luo.provider.service.impl;

import com.alibaba.dubbo.config.annotation.Service;
import com.luo.test.DemoService;

@Service(version = "1.0.0", interfaceName = "com.luo.test.DemoService")
public class DemoServiceImpl implements DemoService {

    @Override
    public String test() {
        return "恭喜連接成功";
    }

}

引入資源配置文件,有三個,這里選主要的

server.port=8081

# dubbo
spring.dubbo.application.name=p2p-provider
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880
spring.dubbo.scan=com.luo.provider.service.impl
spring.dubbo.provider.filter=-exception

建立啟動類ProviderApplication:

package com.luo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ProviderApplication {
    public static void main(String[] args) {
        SpringApplication.run(ProviderApplication.class, args);
    }

}

結構圖如下:

 

5,消費者:p2p-dubbo-consumer。

  pom.xml導入子項目

<dependencies>
        <dependency>
            <groupId>com.luo</groupId>
            <artifactId>p2p-dubbo-api</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>

    </dependencies>

  

引入資源配置文件,有三個,這里選主要的

server.port=8082

# dubbo
spring.dubbo.application.name=p2p-consumer
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880
spring.dubbo.scan=com.luo.control
spring.dubbo.provider.filter=-exception

新建一個類

package com.luo.control;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.alibaba.dubbo.config.annotation.Reference;
import com.luo.test.DemoService;

@RequestMapping("test")
@RestController
public class TestControl {

    @Reference(version = "1.0.0", check = false)
    private DemoService demoService;

    @RequestMapping("getMessage")
    public String test() {
        System.out.println("getMessage:" + demoService.test());
        return "OK:返回信息=" + demoService.test();
    }

    @RequestMapping("index")
    public String index() {
        return "你好啊";
    }
}

新建啟動類ConsumerApplication

package com.luo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class ConsumerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.class, args);

    }

}

6,運行,測試:

    下載zookeeper,並啟動。啟動項目provider,consumer。然后在瀏覽器輸入:http://localhost:8082/test/getMessage

   

這是基礎的例子,后面加上其他功能。

 

7 dubbo管理控制dubbo-admin

 7.1 去 https://github.com/apache/incubator-dubbo/tree/dubbo-2.6.0下載項目

   下載后進入文件夾dubbo-admin,執行:

mvn  package -Dmaven.skip.test=true

執行完后,如圖

 

 把這個war包放到Tomcat的webapp下面,並改名為ROOT,(apache-tomcat-8.5.38)

啟動后,瀏覽器輸入:http://localhost:8080/。再輸入用戶名和密碼,root和root。如圖

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM