基于上一篇分布式项目搭建中,改造成Spring Cloud Alibaba环境。
主要的改造点在于父maven项目中的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> <modules> <module>order</module> <module>stock</module> </modules> <groupId>com.springcloud.learning</groupId> <artifactId>springcloudalibaba</artifactId> <version>0.0.1-SNAPSHOT</version> <name>springcloudalibaba</name> <description>Spring Cloud Alibaba</description> <packaging>pom</packaging> <properties> <java.version>1.8</java.version> <spring.cloud.alibaba.version>2.2.5.RELEASE</spring.cloud.alibaba.version> <spring.boot.version>2.3.11.RELEASE</spring.boot.version> <spring.cloud.version>Hoxton.SR8</spring.cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies> <!--Spring Cloud alibaba的版本管理, 通过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> <!--SpringBoot的版本管理--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>${spring.boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!--Spring Cloud的版本管理--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring.cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
这其中用到了dependencyManagement,可以在其下添加多个不同组件的版本管理器,这样的话就可以释放掉parent这个配置项,这个配置项就可以留给自己公司创建的公共的模块。其次这种配置,子项目进行组件依赖的时候,需要显示声明。
修改过后,页面访问效果:
编辑
注意:spring cloud alibaba 组件之间有很强的版本依赖关系。