【SpringCloud学习笔记(一)】搭建一套环境
学习的目的
最近做的项目中用到了Spring Cloud,为了能够更好的做好项目,自然少不了去研究一下Spring Cloud。
我的计划是结合一些书本和课程,自己写一点简单的Demo代码,验证Spring Cloud的所有技术栈,达到融会贯通更好的去做项目的目的。
第一天,我的目的是创建一个工程,并注册到服务注册中心上去。
过程记录
我选用nacos作为注册和配置中心,选择nacos是因为我们的项目中使用了nacos。
nacos和Spring Cloud有些版本是不兼容的,在反复的试探之后,发现配置文件这样写,可以正常的启动服务并完成服务注册:
plugins {
id 'org.springframework.boot' version '2.2.5.RELEASE'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
ext {
set('springCloudVersion', "Hoxton.SR3")
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.cloud:spring-cloud-starter'
implementation 'org.springframework.cloud:spring-cloud-starter-openfeign'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
implementation 'org.springframework.cloud:spring-cloud-starter-loadbalancer'
implementation group: 'com.alibaba.cloud', name: 'spring-cloud-starter-alibaba-nacos-discovery', version: '2021.1'
implementation group: 'com.alibaba.cloud', name: 'spring-cloud-starter-alibaba-nacos-config', version: '2021.1'
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
repositories {
maven {
url 'https://maven.aliyun.com/repository/public/'
}
maven {
url 'https://maven.aliyun.com/repository/spring/'
}
}
test {
useJUnitPlatform()
}
如果用最新的Spring Boot版本,可能就会出现NoClassDefFoundError异常。
为了使用nacos作为注册中心,需要配置一下application.yaml文件,写明nacos的信息,下面是一个样例:
spring:
cloud:
nacos:
server-addr: 192.168.3.26:8848
discovery:
namespace: 8bde8faf-b4aa-4809-865e-7ca5cdfc5056
config:
server-addr: 192.168.3.26:8848
loadbalancer:
ribbon:
enabled: false
application:
name: waiter
server:
port: 9999
安装nacos的过程参考nacos官方文档。启动服务以后,可以看到waiter服务已经完成注册了: