微服务介绍2
创始人
2024-02-15 22:35:08
0

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


4.0.0com.ruojuanspringboot-shop1.0-SNAPSHOTpom1.8UTF-8UTF-82.3.2.RELEASEHoxton.SR92.2.6.RELEASEorg.springframework.bootspring-boot-dependencies${spring-boot.version}pomimport

        1.2 子项目的搭建

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

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

关联成功 

shop-common的pom.xml


springboot-shopcom.ruojuan1.0-SNAPSHOT4.0.0com.ruojuanshop-common



org.projectlomboklombokcom.alibabafastjson1.2.56mysqlmysql-connector-java5.1.44

创建springboot项目: 

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

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

 

pom.xml


springboot-shopcom.ruojuan1.0-SNAPSHOT4.0.0shop-orderorg.springframework.bootspring-boot-starter-webcom.ruojuanshop-common1.0-SNAPSHOT

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

2 项目展示

写入实体类 

        Order:

package com.ruojuan.model;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;//import javax.persistence.GeneratedValue;
//import javax.persistence.GenerationType;/*** @author ruojuan* @site www.ruojuan.com* @company 玉渊工作室* @create 2022年11月24日 15:03**/
//订单
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Order {private Long oid;//订单id//用户private Integer uid;//用户idprivate String username;//用户名//商品private Integer pid;//商品idprivate String pname;//商品名称private Double pprice;//商品单价//数量private Integer number;//购买数量
}

Product:

package com.ruojuan.model;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;//import javax.persistence.GeneratedValue;
//import javax.persistence.GenerationType;/*** @author ruojuan* @site www.ruojuan.com* @company 玉渊工作室* @create 2022年11月24日 15:02**/
//商品
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Product {private Integer pid;//主键private String pname;//商品名称private Double pprice;//商品价格private Integer stock;//库存
}

User:

package com.ruojuan.model;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;//import javax.persistence.GeneratedValue;
//import javax.persistence.GenerationType;/*** @author ruojuan* @site www.ruojuan.com* @company 玉渊工作室* @create 2022年11月24日 15:02**/
//用户
@Data//不再去写set和get方法
@NoArgsConstructor
@AllArgsConstructor
public class User {private Integer uid;//主键private String username;//用户名private String password;//密码private String telephone;//手机号
}

编写aplication.yml

 

不要写一样的就可以啦: 

shop-user: 

 shop-product:

shop-order:

 

编写controller层

shop-user:

package com.ruojuan.shopuser.controller;import com.ruojuan.model.User;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** @author ruojuan* @site www.ruojuan.com* @company 玉渊工作室* @create 2022年11月24日 15:25**/
@RestController
@RequestMapping("/user")
public class UserController {@RequestMapping("/get/{id}")public User get(@PathVariable("id") Integer id){return new User(id,"ruojuan","123456","13530303030");}}

 运行:

  选中右键run就可以了

这样就成功了一个 

 

shop-product:

package com.ruojuan.shopproduct.controller;import com.ruojuan.model.Product;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** @author ruojuan* @site www.ruojuan.com* @company 玉渊工作室* @create 2022年11月24日 15:32**/
@RestController
@RequestMapping("/product")
public class ProductController {@RequestMapping("/get/{pid}")public Product get(@PathVariable("pid") Integer pid){return new Product(pid,"西游记",66d,20);}}

 

 

 

 

shop-order:

package com.ruojuan.shoporder.controller;import com.ruojuan.model.Order;
import com.ruojuan.model.Product;
import com.ruojuan.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;/*** @author ruojuan* @site www.ruojuan.com* @company 玉渊工作室* @create 2022年11月24日 15:23**/
@RestController
@RequestMapping("/order")
public class OrderController {@Autowiredprivate RestTemplate restTemplate;@RequestMapping("/get/{uid}/{pid}")public Order get(@PathVariable("uid") Integer uid,@PathVariable("pid") Integer pid){/** 要在订单微服务调用 用户微服务,商品微服务,也就意味着跨项目调用* */User user = restTemplate.getForObject("http://localhost:8070/user/get/" + uid, User.class);Product product = restTemplate.getForObject("http://localhost:8080/product/get/" + pid, Product.class);Order order = new Order();order.setUsername(user.getUsername());order.setUid(user.getUid());order.setPprice(product.getPprice());order.setPname(product.getPname());order.setPid(product.getPid());order.setOid(System.currentTimeMillis());order.setNumber(product.getStock());return order;}}

 

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

相关内容

热门资讯

海南自贸区涨停潮背后:政策红利... 12月22日上午,A股市场迎来久违的“多点开花”——三大指数齐涨,而最引人注目的,莫过于海南自贸区板...
深圳:深入实施跨境贸易投资高水... 人民财讯12月23日电,深圳市人民政府印发《深圳市进一步加大吸引和利用外资实施办法》,其中提出,进一...
国家发展改革委等三部门完善幼儿... 中新网12月23日电 据国家发展改革委网站消息,近日,为深入贯彻党的二十大和二十届历次全会精神,落实...
建工修复(300958)披露累... 截至2025年12月23日收盘,建工修复(300958)报收于12.39元,较前一交易日下跌0.88...
红豆股份(600400)披露拟... 截至2025年12月23日收盘,红豆股份(600400)报收于2.4元,较前一交易日下跌2.83%,...
凌钢股份与江苏银行深圳分行纠纷... 12月23日,凌钢股份(600231)发布公告,近期公司收到辽宁省朝阳市中级人民法院的民事裁定书,案...
科蓝软件:科蓝盛合陷合同纠纷 ... 12月23日,科蓝软件(300663)发布公告,控股股东一致行动人宁波科蓝盛合投资管理合伙企业(有限...
广东潮州通报“因购物纠纷引发的... 本文转自【看潮州客户端】; 情况简讯 记者获悉,12月18日,在市区枫春路发生一起因购物纠纷引发的殴...