项目场景:
背景:项目结构图如下所示:
其中gulimall-common中的pom文件中包含gulimall-**等几个项目的公共依赖。在本次操作中,主要是在其中添加spring-cloud-alibaba的项目依赖,需要用到其中的分布式组件。
配置步骤如下:
1、 spring-cloud-alibaba的依赖如下:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.1.4.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
2、安装nacos服务器(具体配置步骤:spring-cloud-alibaba/readme-zh.md at master · alibaba/spring-cloud-alibaba · GitHub);
3、配置nacos参数:
- application.yml文件中添加:
spring:
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848 # nacos server地址和端口
application:
name: gulimall-coupon #项目名称,自定义
- 启动类添加@EnableDiscoveryClient注释
问题描述:
在配置Nacos后发现程序无法启动,报错:org.springframework.context.ApplicationContextException,报错原因如图所示:
解决方案:
1、检查spring-cloud-alibaba的版本是否与springboot版本一致,spring-cloud-alibaba官方说明上有版本规范:
我使用的springboot版本是2.1.8,但是spring-cloud版本确实20200.0.2,很明显,两者并不能完全适用,因此需要修改spring-cloud版本,修改后的spring-cloud版本为‘2.1.4.RELEASE’
2、删除依赖后,需要mvn clean一下,清除之前的编译文件
3、最终启动成功,可以在nacos server中看到程序已经成功注册