• 微服务介绍2


    1 搭建项目

            1.1 父项目的搭建

            1.2 子项目的搭建

    2 项目展示

    1 搭建项目

            1.1 父项目的搭建

    步骤:

            1 选择maven项目作为父项目,修改为1.8之后直接点击next

            2  定义父项目的名称,修改Artifct Coordinates ---> GroupId 然后点击finsh就可以啦

            3 修改pom.xml

    1 选择maven项目作为父项目,修改为1.8之后直接点击next

     2  定义父项目的名称,修改Artifct Coordinates ---> GroupId 然后点击finsh就可以啦 

      3 修改pom.xml

    1. "1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    5. <modelVersion>4.0.0modelVersion>
    6. <groupId>com.ruojuangroupId>
    7. <artifactId>springboot-shopartifactId>
    8. <version>1.0-SNAPSHOTversion>
    9. <packaging>pompackaging>
    10. <properties>
    11. <java.version>1.8java.version>
    12. <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
    13. <project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding>
    14. <spring-boot.version>2.3.2.RELEASEspring-boot.version>
    15. <spring-cloud.version>Hoxton.SR9spring-cloud.version>
    16. <spring-cloud-alibaba.version>2.2.6.RELEASEspring-cloud-alibaba.version>
    17. properties>
    18. <dependencyManagement>
    19. <dependencies>
    20. <dependency>
    21. <groupId>org.springframework.bootgroupId>
    22. <artifactId>spring-boot-dependenciesartifactId>
    23. <version>${spring-boot.version}version>
    24. <type>pomtype>
    25. <scope>importscope>
    26. dependency>
    27. dependencies>
    28. dependencyManagement>
    29. project>

            1.2 子项目的搭建

    搭建一个shop-common的maven子项目

    当建完这个项目时 父项目的pom.xml就会自动多出几行代码 ,这表示

    关联成功 

    shop-common的pom.xml

    1. "1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    5. <parent>
    6. <artifactId>springboot-shopartifactId>
    7. <groupId>com.ruojuangroupId>
    8. <version>1.0-SNAPSHOTversion>
    9. parent>
    10. <modelVersion>4.0.0modelVersion>
    11. <groupId>com.ruojuangroupId>
    12. <artifactId>shop-commonartifactId>
    13. <dependencies>
    14. <dependency>
    15. <groupId>org.projectlombokgroupId>
    16. <artifactId>lombokartifactId>
    17. dependency>
    18. <dependency>
    19. <groupId>com.alibabagroupId>
    20. <artifactId>fastjsonartifactId>
    21. <version>1.2.56version>
    22. dependency>
    23. <dependency>
    24. <groupId>mysqlgroupId>
    25. <artifactId>mysql-connector-javaartifactId>
    26. <version>5.1.44version>
    27. dependency>
    28. dependencies>
    29. project>

    创建springboot项目: 

    直接选择next,然后finsh就可以了 

     以同样的方式创建一下三个

     

    pom.xml

    1. "1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    4. <parent>
    5. <artifactId>springboot-shopartifactId>
    6. <groupId>com.ruojuangroupId>
    7. <version>1.0-SNAPSHOTversion>
    8. parent>
    9. <modelVersion>4.0.0modelVersion>
    10. <artifactId>shop-orderartifactId>
    11. <dependencies>
    12. <dependency>
    13. <groupId>org.springframework.bootgroupId>
    14. <artifactId>spring-boot-starter-webartifactId>
    15. dependency>
    16. <dependency>
    17. <groupId>com.ruojuangroupId>
    18. <artifactId>shop-commonartifactId>
    19. <version>1.0-SNAPSHOTversion>
    20. dependency>
    21. dependencies>
    22. project>

    =====================以上的基本配置完成=========================

    2 项目展示

    写入实体类 

            Order:

    1. package com.ruojuan.model;
    2. import lombok.AllArgsConstructor;
    3. import lombok.Data;
    4. import lombok.NoArgsConstructor;
    5. //import javax.persistence.GeneratedValue;
    6. //import javax.persistence.GenerationType;
    7. /**
    8. * @author ruojuan
    9. * @site www.ruojuan.com
    10. * @company 玉渊工作室
    11. * @create 2022年11月24日 15:03
    12. **/
    13. //订单
    14. @Data
    15. @AllArgsConstructor
    16. @NoArgsConstructor
    17. public class Order {
    18. private Long oid;//订单id
    19. //用户
    20. private Integer uid;//用户id
    21. private String username;//用户名
    22. //商品
    23. private Integer pid;//商品id
    24. private String pname;//商品名称
    25. private Double pprice;//商品单价
    26. //数量
    27. private Integer number;//购买数量
    28. }

    Product:

    1. package com.ruojuan.model;
    2. import lombok.AllArgsConstructor;
    3. import lombok.Data;
    4. import lombok.NoArgsConstructor;
    5. //import javax.persistence.GeneratedValue;
    6. //import javax.persistence.GenerationType;
    7. /**
    8. * @author ruojuan
    9. * @site www.ruojuan.com
    10. * @company 玉渊工作室
    11. * @create 2022年11月24日 15:02
    12. **/
    13. //商品
    14. @Data
    15. @NoArgsConstructor
    16. @AllArgsConstructor
    17. public class Product {
    18. private Integer pid;//主键
    19. private String pname;//商品名称
    20. private Double pprice;//商品价格
    21. private Integer stock;//库存
    22. }

    User:

    1. package com.ruojuan.model;
    2. import lombok.AllArgsConstructor;
    3. import lombok.Data;
    4. import lombok.NoArgsConstructor;
    5. //import javax.persistence.GeneratedValue;
    6. //import javax.persistence.GenerationType;
    7. /**
    8. * @author ruojuan
    9. * @site www.ruojuan.com
    10. * @company 玉渊工作室
    11. * @create 2022年11月24日 15:02
    12. **/
    13. //用户
    14. @Data//不再去写set和get方法
    15. @NoArgsConstructor
    16. @AllArgsConstructor
    17. public class User {
    18. private Integer uid;//主键
    19. private String username;//用户名
    20. private String password;//密码
    21. private String telephone;//手机号
    22. }

    编写aplication.yml

     

    不要写一样的就可以啦: 

    shop-user: 

     shop-product:

    shop-order:

     

    编写controller层

    shop-user:

    1. package com.ruojuan.shopuser.controller;
    2. import com.ruojuan.model.User;
    3. import org.springframework.web.bind.annotation.PathVariable;
    4. import org.springframework.web.bind.annotation.RequestMapping;
    5. import org.springframework.web.bind.annotation.RestController;
    6. /**
    7. * @author ruojuan
    8. * @site www.ruojuan.com
    9. * @company 玉渊工作室
    10. * @create 2022年11月24日 15:25
    11. **/
    12. @RestController
    13. @RequestMapping("/user")
    14. public class UserController {
    15. @RequestMapping("/get/{id}")
    16. public User get(@PathVariable("id") Integer id){
    17. return new User(id,"ruojuan","123456","13530303030");
    18. }
    19. }

     运行:

      选中右键run就可以了

    这样就成功了一个 

     

    shop-product:

    1. package com.ruojuan.shopproduct.controller;
    2. import com.ruojuan.model.Product;
    3. import org.springframework.web.bind.annotation.PathVariable;
    4. import org.springframework.web.bind.annotation.RequestMapping;
    5. import org.springframework.web.bind.annotation.RestController;
    6. /**
    7. * @author ruojuan
    8. * @site www.ruojuan.com
    9. * @company 玉渊工作室
    10. * @create 2022年11月24日 15:32
    11. **/
    12. @RestController
    13. @RequestMapping("/product")
    14. public class ProductController {
    15. @RequestMapping("/get/{pid}")
    16. public Product get(@PathVariable("pid") Integer pid){
    17. return new Product(pid,"西游记",66d,20);
    18. }
    19. }

     

     

     

     

    shop-order:

    1. package com.ruojuan.shoporder.controller;
    2. import com.ruojuan.model.Order;
    3. import com.ruojuan.model.Product;
    4. import com.ruojuan.model.User;
    5. import org.springframework.beans.factory.annotation.Autowired;
    6. import org.springframework.web.bind.annotation.PathVariable;
    7. import org.springframework.web.bind.annotation.RequestMapping;
    8. import org.springframework.web.bind.annotation.RestController;
    9. import org.springframework.web.client.RestTemplate;
    10. /**
    11. * @author ruojuan
    12. * @site www.ruojuan.com
    13. * @company 玉渊工作室
    14. * @create 2022年11月24日 15:23
    15. **/
    16. @RestController
    17. @RequestMapping("/order")
    18. public class OrderController {
    19. @Autowired
    20. private RestTemplate restTemplate;
    21. @RequestMapping("/get/{uid}/{pid}")
    22. public Order get(@PathVariable("uid") Integer uid,
    23. @PathVariable("pid") Integer pid){
    24. /*
    25. * 要在订单微服务调用 用户微服务,商品微服务,也就意味着跨项目调用
    26. * */
    27. User user = restTemplate.getForObject("http://localhost:8070/user/get/" + uid, User.class);
    28. Product product = restTemplate.getForObject("http://localhost:8080/product/get/" + pid, Product.class);
    29. Order order = new Order();
    30. order.setUsername(user.getUsername());
    31. order.setUid(user.getUid());
    32. order.setPprice(product.getPprice());
    33. order.setPname(product.getPname());
    34. order.setPid(product.getPid());
    35. order.setOid(System.currentTimeMillis());
    36. order.setNumber(product.getStock());
    37. return order;
    38. }
    39. }

     

    完成~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 

  • 相关阅读:
    mysql修改root用户的密码
    【数据结构】栈的顺序表实现
    VUE指令语法解析标签属性
    SpringSecurity(八)【RememberMe记住我】
    Jmeter关联操作
    【Python抢票神器】火车票枪票软件到底靠谱吗?实测—终极攻略。
    哪种猫罐头比较好?推荐给新手养猫的5款好口碑猫罐头!
    mysql进阶: mysql中的锁(全局锁/表锁/行锁/间隙锁/临键锁/共享锁/排他锁)
    【数据结构与算法】第四篇:AVL树
    (2D、3D效果)转换有哪些?
  • 原文地址:https://blog.csdn.net/weixin_67338832/article/details/128021900