diff --git a/spring-boot/spring-boot-dubbo/boot-dubbo-common/pom.xml b/spring-boot/spring-boot-dubbo/boot-dubbo-common/pom.xml
new file mode 100644
index 0000000..562aa56
--- /dev/null
+++ b/spring-boot/spring-boot-dubbo/boot-dubbo-common/pom.xml
@@ -0,0 +1,16 @@
+
+
+
+
+ spring-boot-dubbo
+ com.heibaiying
+ 0.0.1-SNAPSHOT
+
+ 4.0.0
+
+ boot-dubbo-common
+
+
+
\ No newline at end of file
diff --git a/spring-boot/spring-boot-dubbo/boot-dubbo-common/src/main/java/com.heibaiying/api/IProductService.java b/spring-boot/spring-boot-dubbo/boot-dubbo-common/src/main/java/com.heibaiying/api/IProductService.java
new file mode 100644
index 0000000..46f2530
--- /dev/null
+++ b/spring-boot/spring-boot-dubbo/boot-dubbo-common/src/main/java/com.heibaiying/api/IProductService.java
@@ -0,0 +1,16 @@
+package com.heibaiying.api;
+
+import com.heibaiying.bean.Product;
+
+import java.util.List;
+
+/**
+ * @author : heibaiying
+ * @description : 产品服务接口类
+ */
+public interface IProductService {
+
+ Product queryProductById(int id);
+
+ List queryAllProducts();
+}
diff --git a/spring-boot/spring-boot-dubbo/boot-dubbo-common/src/main/java/com.heibaiying/bean/Product.java b/spring-boot/spring-boot-dubbo/boot-dubbo-common/src/main/java/com.heibaiying/bean/Product.java
new file mode 100644
index 0000000..8e85bf0
--- /dev/null
+++ b/spring-boot/spring-boot-dubbo/boot-dubbo-common/src/main/java/com.heibaiying/bean/Product.java
@@ -0,0 +1,33 @@
+package com.heibaiying.bean;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author : heibaiying
+ * @description : 产品实体类
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class Product implements Serializable {
+
+ // 产品序列号
+ private int id;
+
+ // 产品名称
+ private String name;
+
+ // 是否贵重品
+ private Boolean isPrecious;
+
+ //生产日期
+ private Date dateInProduced;
+
+ //产品价格
+ private float price;
+}
diff --git a/spring-boot/spring-boot-dubbo/boot-dubbo-consumer/pom.xml b/spring-boot/spring-boot-dubbo/boot-dubbo-consumer/pom.xml
new file mode 100644
index 0000000..a1fb561
--- /dev/null
+++ b/spring-boot/spring-boot-dubbo/boot-dubbo-consumer/pom.xml
@@ -0,0 +1,40 @@
+
+
+ 4.0.0
+
+
+ spring-boot-dubbo
+ com.heibaiying
+ 0.0.1-SNAPSHOT
+
+
+ boot-dubbo-consumer
+ 0.0.1-SNAPSHOT
+ boot-dubbo-consumer
+ dubbo project for Spring Boot
+
+
+ 1.8
+
+
+
+
+
+ com.heibaiying
+ boot-dubbo-common
+ 0.0.1-SNAPSHOT
+ compile
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
+
diff --git a/spring-boot/spring-boot-dubbo/boot-dubbo-consumer/src/main/java/com/heibaiying/dubboconsumer/BootDubboConsumerApplication.java b/spring-boot/spring-boot-dubbo/boot-dubbo-consumer/src/main/java/com/heibaiying/dubboconsumer/BootDubboConsumerApplication.java
new file mode 100644
index 0000000..c42278c
--- /dev/null
+++ b/spring-boot/spring-boot-dubbo/boot-dubbo-consumer/src/main/java/com/heibaiying/dubboconsumer/BootDubboConsumerApplication.java
@@ -0,0 +1,16 @@
+package com.heibaiying.dubboconsumer;
+
+import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+@EnableDubbo //开启dubbo的注解支持
+public class BootDubboConsumerApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(BootDubboConsumerApplication.class, args);
+ }
+
+}
+
diff --git a/spring-boot/spring-boot-dubbo/boot-dubbo-consumer/src/main/java/com/heibaiying/dubboconsumer/controller/SellController.java b/spring-boot/spring-boot-dubbo/boot-dubbo-consumer/src/main/java/com/heibaiying/dubboconsumer/controller/SellController.java
new file mode 100644
index 0000000..00e0eb1
--- /dev/null
+++ b/spring-boot/spring-boot-dubbo/boot-dubbo-consumer/src/main/java/com/heibaiying/dubboconsumer/controller/SellController.java
@@ -0,0 +1,38 @@
+package com.heibaiying.dubboconsumer.controller;
+
+import com.alibaba.dubbo.config.annotation.Reference;
+import com.heibaiying.api.IProductService;
+import com.heibaiying.bean.Product;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import java.util.List;
+
+/**
+ * @author : heibaiying
+ * @description :
+ */
+@Controller
+@RequestMapping("sell")
+public class SellController {
+
+ // dubbo远程引用注解
+ @Reference
+ private IProductService productService;
+
+ @RequestMapping
+ public String productList(Model model) {
+ List products = productService.queryAllProducts();
+ model.addAttribute("products", products);
+ return "products";
+ }
+
+ @RequestMapping("product/{id}")
+ public String productDetail(@PathVariable int id, Model model) {
+ Product product = productService.queryProductById(id);
+ model.addAttribute("product", product);
+ return "product";
+ }
+}
diff --git a/spring-boot/spring-boot-dubbo/boot-dubbo-consumer/src/main/resources/application.yml b/spring-boot/spring-boot-dubbo/boot-dubbo-consumer/src/main/resources/application.yml
new file mode 100644
index 0000000..023f3f1
--- /dev/null
+++ b/spring-boot/spring-boot-dubbo/boot-dubbo-consumer/src/main/resources/application.yml
@@ -0,0 +1,14 @@
+dubbo:
+ application:
+ name: boot-duboo-provider
+ # ָעЭעַ dubboƼʹzookeeperΪעģstartzookeeperjavaͻCurator
+ registry:
+ protocol: zookeeper
+ address: 127.0.0.1:2181
+ protocol.name: dubbo
+ # رзʱ (ûṩʱʵ
+ consumer:
+ check: false
+server:
+ port: 8090
+
diff --git a/spring-boot/spring-boot-dubbo/boot-dubbo-consumer/src/main/resources/templates/product.ftl b/spring-boot/spring-boot-dubbo/boot-dubbo-consumer/src/main/resources/templates/product.ftl
new file mode 100644
index 0000000..729f516
--- /dev/null
+++ b/spring-boot/spring-boot-dubbo/boot-dubbo-consumer/src/main/resources/templates/product.ftl
@@ -0,0 +1,15 @@
+
+
+
+ 产品详情
+
+
+
+ - 产品名称:${product.name}
+ - 产品序列号:${product.id}
+ - 是否贵重品:${product.isPrecious?string('是','否')}
+ - 生产日期: ${product.dateInProduced?string("yyyy-MM-dd HH:mm:ss")}
+ - 产品价格:${product.price}
+
+
+
diff --git a/spring-boot/spring-boot-dubbo/boot-dubbo-consumer/src/main/resources/templates/products.ftl b/spring-boot/spring-boot-dubbo/boot-dubbo-consumer/src/main/resources/templates/products.ftl
new file mode 100644
index 0000000..214fac7
--- /dev/null
+++ b/spring-boot/spring-boot-dubbo/boot-dubbo-consumer/src/main/resources/templates/products.ftl
@@ -0,0 +1,16 @@
+
+
+
+ 产品列表
+
+
+产品列表:点击查看详情
+
+
+
diff --git a/spring-boot/spring-boot-dubbo/boot-dubbo-consumer/src/test/java/com/heibaiying/dubboconsumer/BootDubboConsumerApplicationTests.java b/spring-boot/spring-boot-dubbo/boot-dubbo-consumer/src/test/java/com/heibaiying/dubboconsumer/BootDubboConsumerApplicationTests.java
new file mode 100644
index 0000000..810add7
--- /dev/null
+++ b/spring-boot/spring-boot-dubbo/boot-dubbo-consumer/src/test/java/com/heibaiying/dubboconsumer/BootDubboConsumerApplicationTests.java
@@ -0,0 +1,17 @@
+package com.heibaiying.dubboconsumer;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class BootDubboConsumerApplicationTests {
+
+ @Test
+ public void contextLoads() {
+ }
+
+}
+
diff --git a/spring-boot/spring-boot-dubbo/boot-dubbo-provider/pom.xml b/spring-boot/spring-boot-dubbo/boot-dubbo-provider/pom.xml
new file mode 100644
index 0000000..ed9e6a3
--- /dev/null
+++ b/spring-boot/spring-boot-dubbo/boot-dubbo-provider/pom.xml
@@ -0,0 +1,41 @@
+
+
+ 4.0.0
+
+
+ spring-boot-dubbo
+ com.heibaiying
+ 0.0.1-SNAPSHOT
+
+
+
+ boot-dubbo-provider
+ 0.0.1-SNAPSHOT
+ boot-dubbo-provider
+ dubbo project for Spring Boot
+
+
+ 1.8
+
+
+
+
+
+ com.heibaiying
+ boot-dubbo-common
+ 0.0.1-SNAPSHOT
+ compile
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
+
diff --git a/spring-boot/spring-boot-dubbo/boot-dubbo-provider/src/main/java/com/heibaiying/dubboprovider/BootDubboProviderApplication.java b/spring-boot/spring-boot-dubbo/boot-dubbo-provider/src/main/java/com/heibaiying/dubboprovider/BootDubboProviderApplication.java
new file mode 100644
index 0000000..40928c3
--- /dev/null
+++ b/spring-boot/spring-boot-dubbo/boot-dubbo-provider/src/main/java/com/heibaiying/dubboprovider/BootDubboProviderApplication.java
@@ -0,0 +1,16 @@
+package com.heibaiying.dubboprovider;
+
+import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+@EnableDubbo //开启dubbo的注解支持
+public class BootDubboProviderApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(BootDubboProviderApplication.class, args);
+ }
+
+}
+
diff --git a/spring-boot/spring-boot-dubbo/boot-dubbo-provider/src/main/java/com/heibaiying/dubboprovider/service/ProductService.java b/spring-boot/spring-boot-dubbo/boot-dubbo-provider/src/main/java/com/heibaiying/dubboprovider/service/ProductService.java
new file mode 100644
index 0000000..410d243
--- /dev/null
+++ b/spring-boot/spring-boot-dubbo/boot-dubbo-provider/src/main/java/com/heibaiying/dubboprovider/service/ProductService.java
@@ -0,0 +1,39 @@
+package com.heibaiying.dubboprovider.service;
+
+import com.alibaba.dubbo.config.annotation.Service;
+import com.heibaiying.api.IProductService;
+import com.heibaiying.bean.Product;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author : heibaiying
+ * @description : 产品提供接口实现类
+ */
+@Service(timeout = 5000)
+public class ProductService implements IProductService {
+
+ private static List productList = new ArrayList<>();
+
+ static {
+ for (int i = 0; i < 20; i++) {
+ productList.add(new Product(i, "产品" + i, i / 2 == 0, new Date(), 66.66f * i));
+ }
+ }
+
+ public Product queryProductById(int id) {
+ for (Product product : productList) {
+ if (product.getId() == id) {
+ return product;
+ }
+ }
+ return null;
+ }
+
+
+ public List queryAllProducts() {
+ return productList;
+ }
+}
diff --git a/spring-boot/spring-boot-dubbo/boot-dubbo-provider/src/main/resources/application.yml b/spring-boot/spring-boot-dubbo/boot-dubbo-provider/src/main/resources/application.yml
new file mode 100644
index 0000000..464875f
--- /dev/null
+++ b/spring-boot/spring-boot-dubbo/boot-dubbo-provider/src/main/resources/application.yml
@@ -0,0 +1,8 @@
+dubbo:
+ application:
+ name: boot-duboo-provider
+ # ָעЭעַ dubboƼʹzookeeperΪעģstartzookeeperjavaͻCurator
+ registry:
+ protocol: zookeeper
+ address: 127.0.0.1:2181
+ protocol.name: dubbo
diff --git a/spring-boot/spring-boot-dubbo/boot-dubbo-provider/src/test/java/com/heibaiying/dubboprovider/BootDubboProviderApplicationTests.java b/spring-boot/spring-boot-dubbo/boot-dubbo-provider/src/test/java/com/heibaiying/dubboprovider/BootDubboProviderApplicationTests.java
new file mode 100644
index 0000000..d9c784a
--- /dev/null
+++ b/spring-boot/spring-boot-dubbo/boot-dubbo-provider/src/test/java/com/heibaiying/dubboprovider/BootDubboProviderApplicationTests.java
@@ -0,0 +1,17 @@
+package com.heibaiying.dubboprovider;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class BootDubboProviderApplicationTests {
+
+ @Test
+ public void contextLoads() {
+ }
+
+}
+
diff --git a/spring-boot/spring-boot-dubbo/pom.xml b/spring-boot/spring-boot-dubbo/pom.xml
new file mode 100644
index 0000000..dc56306
--- /dev/null
+++ b/spring-boot/spring-boot-dubbo/pom.xml
@@ -0,0 +1,63 @@
+
+
+ 4.0.0
+ pom
+
+
+ boot-dubbo-common
+ boot-dubbo-consumer
+ boot-dubbo-provider
+
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.1.1.RELEASE
+
+
+ com.heibaiying
+ spring-boot-dubbo
+ 0.0.1-SNAPSHOT
+ spring-boot-dubbo
+ Demo project for Spring Boot
+
+
+ 1.8
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-freemarker
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ runtime
+
+
+ org.projectlombok
+ lombok
+ true
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+ com.alibaba.boot
+ dubbo-spring-boot-starter
+ 0.2.0
+
+
+
+
+