Spring Boot 中使用 dubbo

1. provider 配置信息

application.yml

spring:
  dubbo:
    server: true
    registry: zookeeper://127.0.0.1:2181
  application:
    name: dubbo-provider

server:
  port: 8089
pom.xml

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>com.alibaba.spring.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.6</version>
            <exclusions>
                <exclusion>
                    <artifactId>slf4j-log4j12</artifactId>
                    <groupId>org.slf4j</groupId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.101tec/zkclient -->
        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.11</version>
        </dependency>

    </dependencies>
User.java

import java.io.Serializable;

public class User implements Serializable
{
    private int id;
    private String name;
    private int age;

    public int getId()
    {
        return id;
    }

    public void setId(int id)
    {
        this.id = id;
    }

    public String getName()
    {
        return name;
    }

    public void setName(String name)
    {
        this.name = name;
    }

    public int getAge()
    {
        return age;
    }

    public void setAge(int age)
    {
        this.age = age;
    }

    @Override
    public String toString()
    {
        return "User{" + "id=" + id + ", name='" + name + '\'' + ", age=" + age + '}';
    }
}
UserInfo.java

public interface UserInfo
{
    User findUserById(int id);
}
UserInfoImp.java

@Service
//@Service(version = "1.0.0",timeout = 10000,interfaceClass = UserInfo.class)
@Component
public class UserInfoImp implements UserInfo
{
    @Override
    public User findUserById(int id)
    {
        User u = new User();
        u.setId(id);
        u.setAge(18);
        u.setName("test");

        return u;
    }
}
DemoProviderApplication.java

@SpringBootApplication
@EnableDubboConfiguration
public class DemoProviderApplication
{

    public static void main(String[] args) throws IOException
    {
        SpringApplication.run(DemoProviderApplication.class, args);
    }
}

2. consumer 配置信息

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>com.spring.dubbo.provider</groupId>
            <artifactId>demo-provider</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
    </dependencies>
pom.yml

spring:
  dubbo:
    application:
      name: consumer
    registry:
      address: zookeeper://127.0.0.1:2181
    protocol:
      port: 20800
      name: dubbo

server:
  port: 8088
UserInfoController.java

@RestController
public class UserInfoController
{
    @Reference
//    @Reference(version = "1.0.0")
    private UserInfo userInfo;
    @RequestMapping("/userInfo")
    public User userInfo()
    {
        return userInfo.findUserById(101);
    }
}
DemoApplication.java

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章