nacos集成到Spring cloud
nacos的安装和配置我就不讲解了。直接上代码
- 引入nacos的jar包
<!--nacos-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-nacos-discovery -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-nacos-discovery</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
- 创建bootstrap.yml文件
server:
port: 1001 #服务端口号
spring:
application:
name: demo #项目名称
cloud:
nacos:
discovery: #nacos的服务发现
server-addr: 10.10.0.236:8848 #nacos的地址
namespace: 2233e9c9-1994-4ac5-a4d2-3ea324859476 #nacos对应的命名空间名称
config: #nacos的服务配置
server-addr: 10.10.0.236:8848 #nacos的地址
file-extension: yml #nacos的服务配置类型
group: DEFAULT_GROUP #nacos的默认分组
namespace: 2233e9c9-1994-4ac5-a4d2-3ea324859476 #nacos对应的命名空间名称
ext-config:
- data-id: demo.yml #项目名称 id
refresh: true #服务配置刷新
- 对应的nacos配置设置
注意!
spring boot的项目配置中识别不了bootstrap.yml需要将spring boot项目变成spring cloud项目
导入下面jar包就可以识别了
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-context -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-context</artifactId>
<version>3.0.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-bootstrap -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>3.0.1</version>
</dependency>
- 启动类上加入注解:@EnableDiscoveryClient
但是启动的时候如果报如下错误
Caused by: java.lang.ClassNotFoundException: com.netflix.config.DeploymentContext$ContextKey
加入如下的jar包就可以了
<dependency>
<groupId>com.netflix.archaius</groupId>
<artifactId>archaius-core</artifactId>
<version>0.7.1</version>
</dependency>
nacos的配置结束。
这里注意一下spring boot 和spring Cloud最好使用配置管理避免jar包冲突
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.1.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.SR2</version>
</dependency>
</dependencies>
</dependencyManagement>
- spring boot和spring cloud的版本对应