八 SpringCloud无介绍快使用,新建子module消费者订单模块

无介绍快使用,新建子消费者订单模块(八)
问题背景
从零开始学微服务项目
注意事项:
项目搭建
1 右键新增
2 点击next
3 输入项目名,cloud--,点击
4 替换pom文件
springcloud2022com.yg1.0-SNAPSHOT4.0.0cloud-consumer-order80org.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-actuatororg.springframework.bootspring-boot-devtools>runtimetrueorg.projectlomboklomboktrueorg.springframework.bootspring-boot-starter-test>test
5 在下新增.yml文件
server:port: 80
6 新增启动类
package com.yg.springcloud;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;/*** @Author suolong* @Date 2022/6/15 15:10* @Version 2.0*/@SpringBootApplicationpublic class MainApp80 {public static void main(String[] args) {SpringApplication.run(MainApp80.class);}}
7 新增配置类,使用@Bean注入到容器,才能使用自动注入的方式
package com.yg.springcloud.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.client.RestTemplate;/*** @Author suolong* @Date 2022/6/15 20:53* @Version 2.0*/@Configurationpublic class ApplicationContextConfig {@Beanpublic RestTemplate restTemplate(){return new RestTemplate();}}
8 添加
package com.yg.springcloud.entities;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import java.io.Serializable;/*** @Author suolong* @Date 2022/6/14 21:13* @Version 2.0*/@Data@NoArgsConstructor@AllArgsConstructorpublic class Payment implements Serializable {private Long id;private String serial;}
package com.yg.springcloud.entities;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;/*** @Author suolong* @Date 2022/6/14 21:15* @Version 2.0*/@Data@AllArgsConstructor@NoArgsConstructorpublic class CommonResult {private Integer code;private String message;private T data;public CommonResult(Integer code, String message) {this(code, message, null);}}
9 添加
package com.yg.springcloud.controller;import com.yg.springcloud.entities.CommonResult;import com.yg.springcloud.entities.Payment;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.client.RestTemplate;/*** @Author suolong* @Date 2022/6/15 20:54* @Version 2.0*/@RestControllerpublic class OrderController {public static final String PaymentSrv_URL = "http://localhost:8001";@Autowiredprivate RestTemplate restTemplate;@GetMapping("/consumer/payment/create") //客户端用浏览器是get请求,但是底层实质发送post调用服务端8001public CommonResult create(Payment payment) {return restTemplate.postForObject(PaymentSrv_URL + "/payment/create", payment, CommonResult.class);}@GetMapping("/consumer/payment/get/{id}")public CommonResult getPayment(@PathVariable Long id) {return restTemplate.getForObject(PaymentSrv_URL + "/payment/get/" + id, CommonResult.class, id);}}