From 94e8e62af8ddcc2be919c9e5cd48a9c979b230fa Mon Sep 17 00:00:00 2001 From: heqingpan Date: Mon, 5 Aug 2024 09:05:42 +0800 Subject: [PATCH] add dubbo_v3.x demo #48 --- sdk-examples/java/dubbo_v3.x/.gitignore | 2 + sdk-examples/java/dubbo_v3.x/README.md | 23 ++++ .../java/dubbo_v3.x/dubbo-demo-api/.gitignore | 2 + .../java/dubbo_v3.x/dubbo-demo-api/pom.xml | 68 ++++++++++ .../src/main/java/com/rnacos/demo/App.java | 18 +++ .../rnacos/demo/foo/api/FooController.java | 28 ++++ .../src/main/resources/application.yml | 18 +++ .../dubbo_v3.x/dubbo-demo-common/.gitignore | 2 + .../java/dubbo_v3.x/dubbo-demo-common/pom.xml | 28 ++++ .../src/main/java/com/rnacos/demo/App.java | 13 ++ .../java/com/rnacos/demo/foo/DemoService.java | 5 + .../dubbo_v3.x/dubbo-demo-service/.gitignore | 2 + .../dubbo_v3.x/dubbo-demo-service/pom.xml | 67 ++++++++++ .../src/main/java/com/rnacos/demo/App.java | 18 +++ .../foo/service/impl/DemoServiceImpl.java | 17 +++ .../src/main/resources/application.yml | 17 +++ sdk-examples/java/dubbo_v3.x/pom.xml | 121 ++++++++++++++++++ 17 files changed, 449 insertions(+) create mode 100644 sdk-examples/java/dubbo_v3.x/.gitignore create mode 100644 sdk-examples/java/dubbo_v3.x/README.md create mode 100644 sdk-examples/java/dubbo_v3.x/dubbo-demo-api/.gitignore create mode 100644 sdk-examples/java/dubbo_v3.x/dubbo-demo-api/pom.xml create mode 100644 sdk-examples/java/dubbo_v3.x/dubbo-demo-api/src/main/java/com/rnacos/demo/App.java create mode 100644 sdk-examples/java/dubbo_v3.x/dubbo-demo-api/src/main/java/com/rnacos/demo/foo/api/FooController.java create mode 100644 sdk-examples/java/dubbo_v3.x/dubbo-demo-api/src/main/resources/application.yml create mode 100644 sdk-examples/java/dubbo_v3.x/dubbo-demo-common/.gitignore create mode 100644 sdk-examples/java/dubbo_v3.x/dubbo-demo-common/pom.xml create mode 100644 sdk-examples/java/dubbo_v3.x/dubbo-demo-common/src/main/java/com/rnacos/demo/App.java create mode 100644 sdk-examples/java/dubbo_v3.x/dubbo-demo-common/src/main/java/com/rnacos/demo/foo/DemoService.java create mode 100644 sdk-examples/java/dubbo_v3.x/dubbo-demo-service/.gitignore create mode 100644 sdk-examples/java/dubbo_v3.x/dubbo-demo-service/pom.xml create mode 100644 sdk-examples/java/dubbo_v3.x/dubbo-demo-service/src/main/java/com/rnacos/demo/App.java create mode 100644 sdk-examples/java/dubbo_v3.x/dubbo-demo-service/src/main/java/com/rnacos/demo/foo/service/impl/DemoServiceImpl.java create mode 100644 sdk-examples/java/dubbo_v3.x/dubbo-demo-service/src/main/resources/application.yml create mode 100644 sdk-examples/java/dubbo_v3.x/pom.xml diff --git a/sdk-examples/java/dubbo_v3.x/.gitignore b/sdk-examples/java/dubbo_v3.x/.gitignore new file mode 100644 index 00000000..a1632ab5 --- /dev/null +++ b/sdk-examples/java/dubbo_v3.x/.gitignore @@ -0,0 +1,2 @@ +tmp/ + diff --git a/sdk-examples/java/dubbo_v3.x/README.md b/sdk-examples/java/dubbo_v3.x/README.md new file mode 100644 index 00000000..1cf464ec --- /dev/null +++ b/sdk-examples/java/dubbo_v3.x/README.md @@ -0,0 +1,23 @@ + +# r-nacos dubbo_v3.x 说明 + +本样例基于dubbo v3.2.14版本,需要jdk 17以上版本。 + + + +## 使用方式 + +1. 启动r-nacos +2. 切换到dubbo_v3.x样例目录 +3. 本地打包 `mvn package` (如果有问题可以用 `mvn install` ) +4. 运行service: `java -jar dubbo-demo-service/target/dubbo-demo-service-1.0-SNAPSHOT.jar` +5. 运行api: `java -jar dubbo-demo-api/target/dubbo-demo-api-1.0-SNAPSHOT.jar` +6. 访问api: `curl "http://127.0.0.1:20785/hi?name=r-nacos"` + +```sh +curl "http://127.0.0.1:20785/hi?name=r-nacos" +[dubbo-demo-service] : Hello, r-nacos +``` + + + diff --git a/sdk-examples/java/dubbo_v3.x/dubbo-demo-api/.gitignore b/sdk-examples/java/dubbo_v3.x/dubbo-demo-api/.gitignore new file mode 100644 index 00000000..dc0d833a --- /dev/null +++ b/sdk-examples/java/dubbo_v3.x/dubbo-demo-api/.gitignore @@ -0,0 +1,2 @@ +target/ + diff --git a/sdk-examples/java/dubbo_v3.x/dubbo-demo-api/pom.xml b/sdk-examples/java/dubbo_v3.x/dubbo-demo-api/pom.xml new file mode 100644 index 00000000..0a56055d --- /dev/null +++ b/sdk-examples/java/dubbo_v3.x/dubbo-demo-api/pom.xml @@ -0,0 +1,68 @@ + + 4.0.0 + + + com.rnacos.demo + dubbo-demo-parent + 1.0-SNAPSHOT + ../pom.xml + + + dubbo-demo-api + dubbo-demo-api + jar + + + UTF-8 + + + + + com.rnacos.demo + dubbo-demo-common + + + com.alibaba.nacos + nacos-client + + + + + org.apache.dubbo + dubbo-spring-boot-starter + + + + org.springframework.boot + spring-boot-starter + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-log4j2 + + + + org.apache.dubbo + dubbo-nacos-spring-boot-starter + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + + diff --git a/sdk-examples/java/dubbo_v3.x/dubbo-demo-api/src/main/java/com/rnacos/demo/App.java b/sdk-examples/java/dubbo_v3.x/dubbo-demo-api/src/main/java/com/rnacos/demo/App.java new file mode 100644 index 00000000..085d43cb --- /dev/null +++ b/sdk-examples/java/dubbo_v3.x/dubbo-demo-api/src/main/java/com/rnacos/demo/App.java @@ -0,0 +1,18 @@ +package com.rnacos.demo; + +import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + + +/** + * + */ +@SpringBootApplication +@EnableDubbo +public class App +{ + public static void main(String[] args) { + SpringApplication.run(App.class,args); + } +} diff --git a/sdk-examples/java/dubbo_v3.x/dubbo-demo-api/src/main/java/com/rnacos/demo/foo/api/FooController.java b/sdk-examples/java/dubbo_v3.x/dubbo-demo-api/src/main/java/com/rnacos/demo/foo/api/FooController.java new file mode 100644 index 00000000..c8d83574 --- /dev/null +++ b/sdk-examples/java/dubbo_v3.x/dubbo-demo-api/src/main/java/com/rnacos/demo/foo/api/FooController.java @@ -0,0 +1,28 @@ +package com.rnacos.demo.foo.api; + +import com.rnacos.demo.foo.DemoService; + +import org.apache.dubbo.config.annotation.DubboReference; +import org.springframework.stereotype.Controller; +import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +@Component +@RestController +public class FooController { + + @DubboReference + private DemoService demoService; + + @GetMapping("/hi") + public String hello(@RequestParam("name")String name){ + if(name==null){ + name = "default"; + } + return demoService.sayHello(name); + } +} + diff --git a/sdk-examples/java/dubbo_v3.x/dubbo-demo-api/src/main/resources/application.yml b/sdk-examples/java/dubbo_v3.x/dubbo-demo-api/src/main/resources/application.yml new file mode 100644 index 00000000..90789597 --- /dev/null +++ b/sdk-examples/java/dubbo_v3.x/dubbo-demo-api/src/main/resources/application.yml @@ -0,0 +1,18 @@ +server: + port: 20785 +spring: + application: + name: dubbo-demo-api + +dubbo: + application: + logger: slf4j + name: ${spring.application.name} + qos-enable: false + check-serializable: false + registry: + address: nacos://${nacos.address:127.0.0.1}:8848?username=nacos&password=nacos + protocol: + port: 20885 + name: dubbo + diff --git a/sdk-examples/java/dubbo_v3.x/dubbo-demo-common/.gitignore b/sdk-examples/java/dubbo_v3.x/dubbo-demo-common/.gitignore new file mode 100644 index 00000000..dc0d833a --- /dev/null +++ b/sdk-examples/java/dubbo_v3.x/dubbo-demo-common/.gitignore @@ -0,0 +1,2 @@ +target/ + diff --git a/sdk-examples/java/dubbo_v3.x/dubbo-demo-common/pom.xml b/sdk-examples/java/dubbo_v3.x/dubbo-demo-common/pom.xml new file mode 100644 index 00000000..5ad17e4a --- /dev/null +++ b/sdk-examples/java/dubbo_v3.x/dubbo-demo-common/pom.xml @@ -0,0 +1,28 @@ + + 4.0.0 + + + com.rnacos.demo + dubbo-demo-parent + 1.0-SNAPSHOT + ../pom.xml + + + dubbo-demo-common + dubbo-demo-common + jar + + + UTF-8 + + + + + junit + junit + 3.8.1 + test + + + diff --git a/sdk-examples/java/dubbo_v3.x/dubbo-demo-common/src/main/java/com/rnacos/demo/App.java b/sdk-examples/java/dubbo_v3.x/dubbo-demo-common/src/main/java/com/rnacos/demo/App.java new file mode 100644 index 00000000..908acc07 --- /dev/null +++ b/sdk-examples/java/dubbo_v3.x/dubbo-demo-common/src/main/java/com/rnacos/demo/App.java @@ -0,0 +1,13 @@ +package com.rnacos.demo; + +/** + * Hello world! + * + */ +public class App +{ + public static void main( String[] args ) + { + System.out.println( "Hello World!" ); + } +} diff --git a/sdk-examples/java/dubbo_v3.x/dubbo-demo-common/src/main/java/com/rnacos/demo/foo/DemoService.java b/sdk-examples/java/dubbo_v3.x/dubbo-demo-common/src/main/java/com/rnacos/demo/foo/DemoService.java new file mode 100644 index 00000000..aaac22c4 --- /dev/null +++ b/sdk-examples/java/dubbo_v3.x/dubbo-demo-common/src/main/java/com/rnacos/demo/foo/DemoService.java @@ -0,0 +1,5 @@ +package com.rnacos.demo.foo; + +public interface DemoService { + String sayHello(String name); +} diff --git a/sdk-examples/java/dubbo_v3.x/dubbo-demo-service/.gitignore b/sdk-examples/java/dubbo_v3.x/dubbo-demo-service/.gitignore new file mode 100644 index 00000000..dc0d833a --- /dev/null +++ b/sdk-examples/java/dubbo_v3.x/dubbo-demo-service/.gitignore @@ -0,0 +1,2 @@ +target/ + diff --git a/sdk-examples/java/dubbo_v3.x/dubbo-demo-service/pom.xml b/sdk-examples/java/dubbo_v3.x/dubbo-demo-service/pom.xml new file mode 100644 index 00000000..c438b8cf --- /dev/null +++ b/sdk-examples/java/dubbo_v3.x/dubbo-demo-service/pom.xml @@ -0,0 +1,67 @@ + + 4.0.0 + + + com.rnacos.demo + dubbo-demo-parent + 1.0-SNAPSHOT + ../pom.xml + + + dubbo-demo-service + dubbo-demo-service + jar + + + UTF-8 + + + + + com.rnacos.demo + dubbo-demo-common + + + com.alibaba.nacos + nacos-client + + + + + org.apache.dubbo + dubbo-spring-boot-starter + + + + org.springframework.boot + spring-boot-starter + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-log4j2 + + + + org.apache.dubbo + dubbo-nacos-spring-boot-starter + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/sdk-examples/java/dubbo_v3.x/dubbo-demo-service/src/main/java/com/rnacos/demo/App.java b/sdk-examples/java/dubbo_v3.x/dubbo-demo-service/src/main/java/com/rnacos/demo/App.java new file mode 100644 index 00000000..085d43cb --- /dev/null +++ b/sdk-examples/java/dubbo_v3.x/dubbo-demo-service/src/main/java/com/rnacos/demo/App.java @@ -0,0 +1,18 @@ +package com.rnacos.demo; + +import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + + +/** + * + */ +@SpringBootApplication +@EnableDubbo +public class App +{ + public static void main(String[] args) { + SpringApplication.run(App.class,args); + } +} diff --git a/sdk-examples/java/dubbo_v3.x/dubbo-demo-service/src/main/java/com/rnacos/demo/foo/service/impl/DemoServiceImpl.java b/sdk-examples/java/dubbo_v3.x/dubbo-demo-service/src/main/java/com/rnacos/demo/foo/service/impl/DemoServiceImpl.java new file mode 100644 index 00000000..04133e0c --- /dev/null +++ b/sdk-examples/java/dubbo_v3.x/dubbo-demo-service/src/main/java/com/rnacos/demo/foo/service/impl/DemoServiceImpl.java @@ -0,0 +1,17 @@ +package com.rnacos.demo.foo.service.impl; + +import com.rnacos.demo.foo.DemoService; +import org.apache.dubbo.config.annotation.DubboService; +import org.springframework.beans.factory.annotation.Value; + + +@DubboService +public class DemoServiceImpl implements DemoService { + @Value("${spring.application.name}") + private String serviceName; + + public String sayHello(String name) { + //return String.format("Hello, %s",name); + return String.format("[%s] : Hello, %s",serviceName,name); + } +} diff --git a/sdk-examples/java/dubbo_v3.x/dubbo-demo-service/src/main/resources/application.yml b/sdk-examples/java/dubbo_v3.x/dubbo-demo-service/src/main/resources/application.yml new file mode 100644 index 00000000..81d6a7ce --- /dev/null +++ b/sdk-examples/java/dubbo_v3.x/dubbo-demo-service/src/main/resources/application.yml @@ -0,0 +1,17 @@ +server: + port: 20784 +spring: + application: + name: dubbo-demo-service + +dubbo: + application: + logger: slf4j + name: ${spring.application.name} + qos-enable: false + check-serializable: false + registry: + address: nacos://${nacos.address:127.0.0.1}:8848?username=nacos&password=nacos + protocol: + port: 20884 + name: dubbo diff --git a/sdk-examples/java/dubbo_v3.x/pom.xml b/sdk-examples/java/dubbo_v3.x/pom.xml new file mode 100644 index 00000000..5fffd24d --- /dev/null +++ b/sdk-examples/java/dubbo_v3.x/pom.xml @@ -0,0 +1,121 @@ + + 4.0.0 + + com.rnacos.demo + dubbo-demo-parent + 1.0-SNAPSHOT + pom + + dubbo-demo-parent + http://maven.apache.org + + + 17 + 17 + UTF-8 + + + 3.2.14 + 3.2.3 + 3.11.0 + + + + dubbo-demo-common + dubbo-demo-service + dubbo-demo-api + + + + + + + com.rnacos.demo + dubbo-demo-common + 1.0-SNAPSHOT + + + com.alibaba.nacos + nacos-client + 2.3.3 + + + + org.springframework.boot + spring-boot-dependencies + ${spring-boot.version} + pom + import + + + + org.springframework.boot + spring-boot-starter + ${spring-boot.version} + + + spring-boot-starter-logging + org.springframework.boot + + + + + + org.apache.dubbo + dubbo-bom + ${dubbo.version} + pom + import + + + + + + + org.apache.dubbo + dubbo + ${dubbo.version} + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + ${spring-boot.version} + + + + repackage + + + + + + + + + + +