若依RuoYi-Cloud代码学习四---扩展nacos的知识(bootstrap.yml,spring.factories文件)
一、概念Nacos 是一个更易于帮助构建云原生应用的动态服务发现、配置和服务管理平台Nacos 的命名组成(以此知道它的作用)组成部分全称描述Nanaming/nameServer即服务注册中心,与 Spring Cloud Eureka 的功能类似。coconfiguration即配置中心,与 Spring Cloud Config+Spring Cloud Bus 的功能类似。sservice
一、概念
Nacos
是一个更易于帮助构建云原生应用的动态服务发现、配置和服务管理平台
- Nacos 的命名组成(以此知道它的作用)
组成部分 | 全称 | 描述 |
---|---|---|
Na | naming/nameServer | 即服务注册中心,与 Spring Cloud Eureka 的功能类似。 |
co | configuration | 即配置中心,与 Spring Cloud Config+Spring Cloud Bus 的功能类似。 |
s | service | 即服务,表示 Nacos 实现的服务注册中心和配置中心都是以服务为核心的。 |
作为
SpringCloudAlibaba
的组件,从它的作用可以看出它替代了之前SpringCloud
的Eureka
、Spring Cloud Config
二、nacos
作为服务注册中心
- Nacos 实现服务注册与发现的流程:
1、下载官方的
nacos-server
程序并启动
2、项目引入依赖spring-cloud-starter-alibaba-nacos-discovery
3、会把服务以服务名(spring.application.name
)的方式注册到服务注册中心(Nacos Server
)
4、在获取了服务提供者的信息后,服务消费者通过 HTTP 或消息中间件远程调用服务提供者提供的服务。
- Nacos Client分为服务提供者(Provider Service)和服务消费者(Consumer Service)
<dependencyManagement>
<dependencies>
<!--Spring Cloud Alibaba 的版本信息-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud.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>
注意:微服务工程,通过
dependencyManagement
对Spring Cloud Alibaba
的版本信息进行管理,该工程下的各个子模块在引入Spring Cloud Alibaba
的各个组件时就不要单独指定版本号了。
- ry的开启服务发现使用的自定义逐渐
@EnableRyFeignClients
@EnableRyFeignClients
@SpringBootApplication
- 就是加了个扫包默认值
三、nacos
作为配置中心
1、添加依赖
spring-cloud-starter-alibaba-nacos-config
使其在nacos-server
实现配置
2、(比如ry-config
)配置持久化nacos-server\conf\application.properties
找到配置文件添加mysql
的连接配置
四、bootstrap.yml
bootstrap.yml
的作用
若
application.yml
和bootstrap.yml
在同一目录下:bootstrap.yml
先加载application.yml
后加载bootstrap.yml
用于应用程序上下文的引导阶段。bootstrap.yml
由父Spring ApplicationContext
加载。
Spring Boot
上下文:非 Web 应用:
AnnotationConfigApplicationContext
Web 应用:AnnotationConfigEmbeddedWebApplicationContext
Spring Cloud
上下文:Bootstrap
(父)
- 使用
bootstrap.yml
<!--SpringCloud2020及以后的版本默认不启用 bootstrap 配置,我们需要在pom里面显式地引入:
bootstrap 启动器-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
五、spring.factories
对于在
maven
中引用的其他外部包加入容器的过程,需要用到spring.factories
。
- springboot一般都是为了实现引入的项目自动配置
- ry中的使用(单纯引入
bean
)
ok,就到这里,
\(^o^)/~
更多推荐
所有评论(0)