初始化 dubbo xml 示例

This commit is contained in:
YunaiV
2019-12-01 20:23:02 +08:00
parent 3f757aeca9
commit 525909b786
18 changed files with 238 additions and 57 deletions

View File

@@ -13,7 +13,8 @@
<packaging>pom</packaging>
<modules>
<module>user-rpc-service-api</module>
<module>user-rpc-service</module>
<module>user-rpc-service-provider</module>
<module>user-rpc-service-consumer</module>
</modules>

View File

@@ -11,5 +11,4 @@
<artifactId>user-rpc-service-api</artifactId>
</project>

View File

@@ -1,9 +0,0 @@
package cn.iocoder.springboot.lab30.rpc.api;
import cn.iocoder.springboot.lab30.rpc.dto.DemoUserDTO;
public interface DemoUserRpcService {
DemoUserDTO get(Integer id);
}

View File

@@ -0,0 +1,9 @@
package cn.iocoder.springboot.lab30.rpc.api;
import cn.iocoder.springboot.lab30.rpc.dto.UserDTO;
public interface UserRpcService {
UserDTO get(Integer id);
}

View File

@@ -1,6 +1,8 @@
package cn.iocoder.springboot.lab30.rpc.dto;
public class DemoUserDTO {
import java.io.Serializable;
public class UserDTO implements Serializable {
/**
* 用户编号
@@ -19,7 +21,7 @@ public class DemoUserDTO {
return id;
}
public DemoUserDTO setId(Integer id) {
public UserDTO setId(Integer id) {
this.id = id;
return this;
}
@@ -28,7 +30,7 @@ public class DemoUserDTO {
return name;
}
public DemoUserDTO setName(String name) {
public UserDTO setName(String name) {
this.name = name;
return this;
}
@@ -37,7 +39,7 @@ public class DemoUserDTO {
return gender;
}
public DemoUserDTO setGender(Integer gender) {
public UserDTO setGender(Integer gender) {
this.gender = gender;
return this;
}

View File

@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>user-rpc-service-consumer</artifactId>
<dependencies>
<dependency>
<groupId>cn.iocoder.springboot.labs</groupId>
<artifactId>user-rpc-service-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- 引入 Spring Boot 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- 实现对 Dubbo 的自动化配置 -->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>2.7.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.4.1</version>
</dependency>
<!-- 使用 Zookeeper 作为注册中心 -->
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>2.13.0</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>2.13.0</version>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,28 @@
package cn.iocoder.springboot.lab30.rpc;
import cn.iocoder.springboot.lab30.rpc.api.UserRpcService;
import cn.iocoder.springboot.lab30.rpc.dto.UserDTO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.ImportResource;
@SpringBootApplication
@ImportResource("classpath:dubbo.xml")
public class ConsumerApplication {
private static final Logger LOGGER = LoggerFactory.getLogger(ConsumerApplication.class);
public static void main(String[] args) {
// 启动 Spring Boot 应用
ConfigurableApplicationContext context = SpringApplication.run(ConsumerApplication.class, args);
// 获得 UserRpcService
UserRpcService service = context.getBean(UserRpcService.class);
UserDTO user = service.get(1);
LOGGER.info("[main][发起一次 Dubbo RPC 请求,获得用户为({})", user);
}
}

View File

@@ -0,0 +1,12 @@
# dubbo
dubbo:
application:
name: user-service
registry:
address: zookeeper://127.0.0.1:2181
protocol:
port: -1
name: dubbo
consumer:
UserRpcService:
version: 1.0.0

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
xmlns="http://www.springframework.org/schema/beans"
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:reference id="userService" interface="cn.iocoder.springboot.lab30.rpc.api.UserRpcService"
version="${dubbo.consumer.UserRpcService.version}"/>
</beans>

View File

@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>user-rpc-service</artifactId>
<dependencies>
<dependency>
<groupId>cn.iocoder.springboot.labs</groupId>
<artifactId>user-rpc-service-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- 引入 Spring Boot 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- 实现对 Dubbo 的自动化配置 -->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>2.7.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.4.1</version>
</dependency>
<!-- 使用 Zookeeper 作为注册中心 -->
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>2.13.0</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>2.13.0</version>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,16 @@
package cn.iocoder.springboot.lab30.rpc;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;
@SpringBootApplication
@ImportResource("classpath:dubbo.xml")
public class ProviderApplication {
public static void main(String[] args) {
// 启动 Spring Boot 应用
SpringApplication.run(ProviderApplication.class, args);
}
}

View File

@@ -0,0 +1,17 @@
package cn.iocoder.springboot.lab30.rpc.service;
import cn.iocoder.springboot.lab30.rpc.api.UserRpcService;
import cn.iocoder.springboot.lab30.rpc.dto.UserDTO;
import org.springframework.stereotype.Service;
@Service
public class UserRpcServiceImpl implements UserRpcService {
public UserDTO get(Integer id) {
return new UserDTO().setId(id)
.setName("没有昵称:" + id)
.setGender(id % 2 + 1); // 1 - 男2 - 女
}
}

View File

@@ -0,0 +1,12 @@
# dubbo
dubbo:
application:
name: user-service
registry:
address: zookeeper://127.0.0.1:2181
protocol:
port: -1
name: dubbo
provider:
UserRpcService:
version: 1.0.0

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
xmlns="http://www.springframework.org/schema/beans"
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:service ref="userRpcServiceImpl" interface="cn.iocoder.springboot.lab30.rpc.api.UserRpcService"
version="${dubbo.provider.UserRpcService.version}" />
</beans>

View File

@@ -1,22 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<artifactId>lab-29-dubbo-xml-demo</artifactId>
<groupId>cn.iocoder.springboot.labs</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>user-rpc-service</artifactId>
<dependencies>
<dependency>
<groupId>cn.iocoder.springboot.labs</groupId>
<artifactId>user-rpc-service-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>

View File

@@ -1,4 +0,0 @@
package cn.iocoder.springboot.lab30.rpc;
public class Application {
}

View File

@@ -1,15 +0,0 @@
package cn.iocoder.springboot.lab30.rpc.service;
import cn.iocoder.springboot.lab30.rpc.api.DemoUserRpcService;
import cn.iocoder.springboot.lab30.rpc.dto.DemoUserDTO;
public class DemoUserRpcServiceImpl implements DemoUserRpcService {
public DemoUserDTO get(Integer id) {
return new DemoUserDTO().setId(id)
.setName("没有昵称:" + id)
.setGender(id % 2 + 1); // 1 - 男2 - 女
}
}