1. Nacos 注册中心和 SpringCloud整合
1.1 在父工程中添加依赖
<!-- 添加springboot的parent依赖-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
<relativePath/>
</parent>
<!--
集中定义依赖组件版本号,但不引入
在子工程中用到声明的依赖时,可以不加入依赖的版本号
这样可以统一管理工程中用到的依赖版本
-->
<properties>
<spring-cloud.version>Hoxton.SR1</spring-cloud.version>
</properties>
<dependencyManagement>
<dependencies>
<!-- 管理了所有子工程中的springcloud的组件的版本号-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--nacos配置中心客户端-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.2.1.RELEASE</version>
</dependency>
<!--nacos服务注册客户端-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.1.RELEASE</version>
</dependency>
</dependencies>
</dependencyManagement>
1.2 创建子工程,并添加依赖
<!--nacos配置中心客户端-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!--nacos服务注册客户端-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
1.3 配置文件 bootstrap.yml
server:
port: 9101
spring:
application:
name: shop-goods
cloud:
nacos:
# 注册中心配置
discovery:
server-addr: 127.0.0.1:8848 # nacos 注册中心地址
namespace: 0e883794-4414-4d41-a177-6d335d304e42 # 开发环境 指定 具体的命名空间id
#group: DEFAULT_GROUP # 分组 默认分组可以省略
# 配置中心配置
config:
#enabled: false #关闭配置
server-addr: 127.0.0.1:8848 # Nacos 配置中心地址
namespace: 0e883794-4414-4d41-a177-6d335d304e42 # 开发环境 指定 具体的命名空间id
group: TEST_GROUP # 分组
name: test-config-dev #dataid 内容
#file-extension: yaml #dataid 的名称就是application的name加file-extension service1.yaml
1.4 启动类
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.cloud.netflix.hystrix.EnableHystrix;
import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
//标注当前工程开启feign远程调用
@EnableFeignClients
//开启降级
@EnableHystrix
//配置文件自动刷新
@RefreshScope
public class GoodsApplication {
public static void main(String[] args) {
SpringApplication.run(GoodsApplication.class);
}
}