环境依赖
SpringCloud Alibaba 依赖 Java 环境来运行。还需要为此配置 Maven 环境,请确保是在以下版本环境中安装使用:1. 64 bit JDK 1.8+; 下载 & 配置 。 1.8.0_1312. Maven 3.2.x+; 下载 & 配置
搭建微服务
1.建立微服务项目
1.idea通过Spring Initialize 创建type为Maven POM的父项目
父项目主要起到整合多个微服务项目以及让每个微服务项目继承父项目中统一依赖的作用,因此选择Maven POM ,此时新建的项目不会新建src 、.mvn等文件夹。如果没有Maven POM也没有关系,新建 项目后删除src .mvn文件夹即可。
2.项目新建Module 项目右键---New--Module
尽量选择Maven模式创建新项目,因为选择Maven会自动将模块的parent依赖设置为父项目,使用Spring Initializer则不会自动设置,必须手动更改。pom文件加入web依赖。
新建order、stock模块。两个模块application.yml配置两个不同端口,编写启动类, 配置RestTemplate bean。
![]()
@SpringBootApplication public class OrderApplication { public static void main(String[] args) { SpringApplication.run(OrderApplication.class, args); } @Bean public RestTemplate restTemplate(RestTemplateBuilder builder) { return builder.build(); } }
@RestController @RequestMapping("order") public class OrderController { @Autowired RestTemplate restTemplate; @RequestMapping("/add") public String addStock() { String res = restTemplate.getForObject("localhost:8081/stock/add",String.class); return "调用订单成功"; } }
3.启动项目 浏览器访问端口成功,说明两个微服务项目创建成功。
会发现项目中调用另一个项目的接口时,需要ip:port,如果项目比较多,调用会很混乱,怎么办?微服务架构的注册中心可以解决,只需要服务名就可以。
2.alibaba微服务环境搭建
1.版本说明
alibaba 版本必须严格按照指定版本配置各个组件。参考官网wiki 版本说明 · alibaba/spring-cloud-alibaba Wiki · GitHub
2.本项目使用 spring boot version 2.3.12.RELEASE;Spring Cloud Version SR12;Spring Cloud Alibaba version 2.2.10-RC1*
3.项目依赖的组件多时,版本控制比较麻烦。
根据官网的依赖管理,只要在父项目的pom中加入如下内容,指定spring Cloud Alibaba的版本,其他spring cloud alibaba子组件的版本都会自动确定。子项目需要alibaba的子组件时不需要明确指定版本。 好处是此框架的所有小组件的版本都可以统一管理,方便。
<dependencyManagement> <dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2.2.9.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
同理dependencyManagement标签可以管理spring cloud alibaba、spring boot、spring cloud三个的版本,当用到这些的子组件时也可以这么填写,如下是一个父项目的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 https://maven.apache.org/xsd/maven‐4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring‐boot‐starter‐parent</artifactId> <version>2.3.2.RELEASE</version> <relativePath/> <!‐‐ lookup parent from repository ‐‐> </parent> <groupId>com.tuling.mall</groupId> <artifactId>vip‐spring‐cloud‐alibaba</artifactId> <version>0.0.1‐SNAPSHOT</version> <name>vip‐spring‐cloud‐alibaba</name> <packaging>pom</packaging> <description>Demo project for Spring Cloud Alibaba</description> <properties> <java.version>1.8</java.version> <spring‐cloud.version>Hoxton.SR8</spring‐cloud.version> <spring‐cloud‐alibaba.version>2.2.5.RELEASE</spring‐cloud‐alibaba.version> </properties> <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>com.alibaba.cloud</groupId> <artifactId>spring‐cloud‐alibaba‐dependencies</artifactId> <version>${spring‐cloud‐alibaba.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> </project>
4.alibaba微服务,有个类似于spring boot initializer的快捷创建方式,可以方便添加依赖。Cloud Native App Initializer
通过idea使用alibaba的项目向导,只需要修改url为alibaba的快捷向导url即可。