Dubbo 03: 直連式 + 接口工程

  • 進一步改正dubbo框架中簡單的直連式的不足
  • 需要用到3個相互獨立的maven工程,項目1為maven的java工程作為接口工程,項目2,3為maven的web工程
    工程1:o3-link-interface 作為接口工程工程2:o4-link-userservice-provider 作為服務的提供者工程3:o5-link-consumer 作為使用服務的消費者
工程1
  • 結構:與簡單的直連式不同的是 , 引入了接口工程 , 將實體類和所提供的服務的接口放在接口工程里
    Dubbo 03: 直連式 + 接口工程

    文章插圖
  • pom文件
    <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.example.dubbo</groupId><artifactId>o3-link-interface</artifactId><version>1.0.0</version><packaging>jar</packaging><build><plugins><!--JDK1.8編譯插件--><plugin><artifactId>maven-compiler-plugin</artifactId><version>3.1</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin></plugins></build></project>
  • 實體類:注意要實現序列化接口,數據需要通過socket網絡傳輸
    package com.example.dubbo.model;import java.io.Serializable;public class User implements Serializable {private String id;private String name;private String age;@Overridepublic String toString() {return "User{" +"id='" + id + '\'' +", name='" + name + '\'' +", age='" + age + '\'' +'}';}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}public User(String id, String name, String age) {this.id = id;this.name = name;this.age = age;}public User() {}}
  • 服務接口:
    package com.example.dubbo.service;import com.example.dubbo.model.User;public interface UserService {/*** 根據用戶id , 獲取用信息*/User queryUserById(String id);}
工程2