当前位置: 首页 > news >正文

苏州市建设工程交易中心网站网站开发设计总结及心得体会

苏州市建设工程交易中心网站,网站开发设计总结及心得体会,网页设计代码li,wordpress怎样搭建大叫好我是小帅,今天我们来讲微服务开发工程细节,这里不包括全部代码,包括父子工程pom文件讲解,RestTemplate发送http请求。 文章目录 1. 项目工程介绍1.1 父工程的pom文件1.2 Spring Cloud版本和springBoot关系1.3 创建两个子项…

大叫好我是小帅,今天我们来讲微服务开发工程细节,这里不包括全部代码,包括父子工程pom文件讲解,RestTemplate发送http请求。

文章目录

  • 1. 项目工程介绍
    • 1.1 父工程的pom文件
    • 1.2 Spring Cloud版本和springBoot关系
    • 1.3 创建两个子项目
  • 2. RestTemplate
    • 2.1 RestTemplate的简单使用


1. 项目工程介绍

这里我提供了项目全部代码:https://gitee.com/eating-candy-is-also-buni/spring-cloud/commit/9f8d1f3a6b655876062f052dab16b0a7c9e1aee2

项目结构:

在这里插入图片描述

1.1 父工程的pom文件

⽤properties来进⾏版本号的统⼀管理, 使⽤dependencyManagement来管理依赖, 声明⽗⼯程的打包⽅式为pom

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.cdm</groupId><artifactId>clout</artifactId><version>1.0-SNAPSHOT</version><packaging>pom</packaging> <!-- 声明⽗⼯程的打包⽅式为pom--><modules><module>product-service</module><module>order-service</module></modules><!--    新添加--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.1.6</version><relativePath/> <!-- lookup parent from repository --></parent><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><java.version>17</java.version><mybatis.version>3.0.3</mybatis.version><mysql.version>8.0.33</mysql.version><spring-cloud.version>2022.0.3</spring-cloud.version></properties><dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency></dependencies><!--    只是声明,没有引用,子项目应用才下载--><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>${mybatis.version}</version></dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>${mysql.version}</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter-test</artifactId><version>${mybatis.version}</version><scope>test</scope></dependency></dependencies></dependencyManagement>
</project>

解释:

DependencyManagement 和 Dependencies

  1. dependencies :将所依赖的jar直接加到项⽬中. ⼦项⽬也会继承该依赖.
  2. dependencyManagement :只是声明依赖, 并不实现Jar包引⼊, 如果⼦项⽬需要⽤到相关依赖,需要显式声明. 如果⼦项⽬没有指定具体版本, 会从⽗项⽬中读取version. 如果⼦项⽬中指定了版本号,就会使⽤⼦项⽬中指定的jar版本. **此外⽗⼯程的打包⽅式应该是pom,**不是jar, 这⾥需要⼿动使⽤ packaging 来声明.

子工程pom文件怎么显示声明等等我会讲

1.2 Spring Cloud版本和springBoot关系

Spring Cloud 是基于SpringBoot搭建的, 所以Spring Cloud 版本与SpringBoot版本有关
在这里插入图片描述

1.3 创建两个子项目

在这里插入图片描述

声明项⽬依赖 和 项⽬构建插件

 <!--    新添加--><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId></dependency><!--mybatis--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins><resources><resource><directory>src/main/resources</directory><filtering>true</filtering><includes><include>**/**</include></includes></resource></resources></build>

解释:

⼦项⽬没有指定具体版本, 会从⽗项⽬中读取version. 如果⼦项⽬中指定了版本号,就会使⽤⼦项⽬中指定的jar版本.

2. RestTemplate

RestTemplate 是从 Spring3.0 开始⽀持的⼀个 HTTP 请求⼯具, 它是⼀个同步的 REST API 客⼾端, 提供了常⻅的REST请求⽅案的模版.


2.1 RestTemplate的简单使用

实现思路: order-service服务向product-service服务发送⼀个http请求, 把得到的返回结果, 和订单结果融合在⼀起, 返回给调⽤⽅.

实现⽅式: 采⽤Spring 提供的RestTemplate

实现http请求的⽅式, 有很多, 可参考: https://zhuanlan.zhihu.com/p/670101467

  1. 定义RestTemplate
@Configuration
public class BeanConfig {//把这个第三方类交给Spring管理@Beanpublic RestTemplate restTemplate() {return new RestTemplate();}
}

修改order-service中的 OrderService

@Service
public class OrderService {@Autowiredprivate OrderMapper orderMapper;@Autowiredprivate RestTemplate restTemplate;public OrderInfo selectByOrderId(Integer orderId) {OrderInfo orderInfo = orderMapper.selectByOrderId(orderId);String url = "http://127.0.0.1:9090/product/" + orderInfo.getProductId();ProductInfo productInfo = restTemplate.getForObject(url, ProductInfo.class);orderInfo.setProductInfo(productInfo);return orderInfo;}
}

测试

访问url: http://127.0.0.1:8080/order/1
在这里插入图片描述

好了今天就到这里了,感谢观看。

http://www.dtcms.com/a/568472.html

相关文章:

  • 黑龙江省鹤岗市城乡建设局网站建站域名
  • soular零基础学习,如何实现TikLab工具链统一登录认证
  • Go语言设计模式:解释器模式详解
  • 深圳的游戏公司后端开发面经
  • 全新私域(微信)管理系统如何获取?
  • 《Godot轻量化开发的全流程进阶指南》
  • 首个开源方案:将 Godot 3D 游戏无缝嵌入 React Native 应用
  • Qt在线安装测试可用的国内代理
  • React Native第五章
  • 如何提高测试用例覆盖率?
  • 蒙古网站群建设html做的网站排版导致乱码
  • 【国产桌面操作系统】QT应用打deb包
  • React 12
  • 做网站 怎么发布专业模板建站哪家好
  • JavaSe—Set集合
  • 单调栈的“近亲”:用 O(n) 的「单调队列」征服「滑动窗口最大值」
  • Buildroot构建Linux系统根文件系统
  • 在自动驾驶数据闭环中的特征工程应用(上)
  • 【具身智能】Spatial Forcing 论文笔记 如何隐式地为 VLA 注入 3D 空间感知能力
  • 多模态技术深度探索:融合视觉与语言的AI新范式
  • 自动化单mysql多实例库的全量迁移脚本-v2版本
  • [CARLA系列--04]如何在Carla中去调用传感器模型--相机篇
  • 【ASP.NET MVC 进阶】DataAnnotations 特性验证全解析:从基础到避坑,让数据校验像 “安检“ 一样靠谱
  • 做ppt兼职的网站有哪些北京中燕建设公司网站
  • webgl 顶点、片元着色器传参,绘制彩色三角形
  • 实验室安全教育与管理平台学习记录(八)特种设备安全
  • 浙江网站制作国外翻墙设计网站
  • 《神经网络与深度学习》学习笔记一
  • 超越蓝牙与Wi-Fi,UWB技术如何解锁手机下一波创新浪潮?
  • 【VPX650G】基于 VPX 系统架构的 JFM9VU13P FPGA+JFMQL100TAI 超宽带信号处理平台