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 @@ + + + + 产品详情 + + + + + 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 + + + + +