- 首页 > 生活百科 > >
- 进一步改正dubbo框架中简单的直连式的不足
- 需要用到3个相互独立的maven工程,项目1为maven的java工程作为接口工程,项目2,3为maven的web工程
工程1:o3-link-interface 作为接口工程工程2:o4-link-userservice-provider 作为服务的提供者工程3:o5-link-consumer 作为使用服务的消费者
工程1
- 结构:与简单的直连式不同的是 , 引入了接口工程 , 将实体类和所提供的服务的接口放在接口工程里
文章插图
- 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
- 结构
文章插图
- 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/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example.dubbo</groupId><artifactId>o4-link-userservice-provider</artifactId><packaging>war</packaging><version>1.0.0</version><dependencies><!-- Spring依赖 --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.3.16.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.3.16.RELEASE</version></dependency><!-- dubbo依赖 --><dependency><groupId>com.alibaba</groupId><artifactId>dubbo</artifactId><version>2.6.2</version></dependency><!-- 接口工程 --><dependency><groupId>com.example.dubbo</groupId><artifactId>o3-link-interface</artifactId><version>1.0.0</version></dependency></dependencies><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>
- dubbo的服务提供者的配置文件
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd"><!-- 服务提供者标识 --><dubbo:application name="o4-link-userservice-provider"/><!-- 使用的协议和端口 --><dubbo:protocol name="dubbo" port="20880"/><!-- 提供的服务 --><dubbo:service interface="com.example.dubbo.service.UserService"ref="userService" registry="N/A"/><!-- 服务的实现类--><bean id="userService" class="com.example.dubbo.service.impl.userServiceImpl"/></beans>
推荐阅读
-
-
2022年护士年终工作总结 2022美工个人年终工作总结
-
-
-
-
抗皱六胜肽精华液的使用方法 六胜肽抗皱精华液使用方法
-
-
-
-
-
-
-
-
开元通宝680万图片 &#8211; 开元通宝2020价格
-
-
-
-
-
-