脚本宝典收集整理的这篇文章主要介绍了使用Template实现分布式架构之间通信的demo,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
首先创建一个 springboot 父项目
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<modules>
<module>order</module>
<module>stock</module>
</modules>
<parent>
<!-- springboot的版本管理器 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>springcloudalibaba</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springcloudalibaba</name>
<!-- 这里打包方式设置为pom,就不会打包父项目,只会打包下面的子项目 -->
<packaging>pom</packaging>
<description>springcloudalibaba</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- springboot基本场景启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
在这个项目下创建子 maven 项目
<?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"> <parent> <artifactId>springcloudalibaba</artifactId> <groupId>com.example</groupId> <version>0.0.1-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>order</artifactId> <description>商品订单模块</description> <properties> <maven wangt.cc piler.source>8</maven wangt.cc piler.source> <maven wangt.cc piler.target>8</maven wangt.cc piler.target> </properties> <dependencies> <!-- web场景启动器,添加完可以使用MVC --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> </project>
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<modules>
<module>order</module>
<module>stock</module>
</modules>
<parent>
<!-- springboot的版本管理器 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>springcloudalibaba</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springcloudalibaba</name>
<!-- 这里打包方式设置为pom,就不会打包父项目,只会打包下面的子项目 -->
<packaging>pom</packaging>
<description>springcloudalibaba</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- springboot基本场景启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
业务代码
order服务
/** * @Description: * @Author: LH * @Date: 2021/12/04/4:30 下午 */ @SpringBootApplication public class OrderApplication { public static void main(String[] args) { SpringApplication.run(OrderApplication.class,args); } // 用于远程调用的template,使用建造者模式 @Bean public RestTemplate restTemplate(RestTemplateBuilder builder) { RestTemplate restTemplate = builder.build(); return restTemplate; } }
/** * @Description: * @Author: LH * @Date: 2021/12/04/4:18 下午 */ @RestController @RequestMapping("/order") public class OrderController { @Autowired RestTemplate restTemplate; @RequestMapping("/add") public String add() { System.out.println("下单成功!"); String msg = restTemplate.getForObject("http://localhost:8082/stock/reduct", String.class); return "Hello World!" + msg; } }
stock服务
/** * @Description: * @Author: LH * @Date: 2021/12/04/4:32 下午 */ @SpringBootApplication public class StockApplication { public static void main(String[] args) { SpringApplication.run(StockApplication.class,args); } }
/** * @Description: * @Author: LH * @Date: 2021/12/04/4:21 下午 */ @RestController @RequestMapping("/stock") public class StockController { @RequestMapping("/reduct") public String reduct() { System.out.println("扣减库存"); return "扣减库存"; } }
起两个服务
在浏览器输入localhot:/8081/order/add进行访问
以上是脚本宝典为你收集整理的使用Template实现分布式架构之间通信的demo全部内容,希望文章能够帮你解决使用Template实现分布式架构之间通信的demo所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。