简介
Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。
依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。
https://github.com/alibaba/spring-cloud-alibaba
首页引入SpringCloud Alibaba依赖管理
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.5.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Nacos注册中心
1.引入Nacos Discovery Starter
<!--Nacos Discovery Starter-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
2.在yml文件中配置Nacos Server地址
spring:
#配置nacos地址
cloud:
nacos:
discovery:
server-addr: 127.0.0:8848
#当前服务名称
application:
name: test
3.使用@EnableDiscoveryClient开启服务注册与发现
在启动类中添加@EnableDiscoveryClient注解
@SpringBootApplication
@EnableDiscoveryClient
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
4.启动nacos服务
首先下载nacos
可以在github下载,不过可能有点慢
https://github.com/alibaba/nacos/releases
我已经将本地nacos上传可以直接使用
https://download.csdn.net/download/qq_47044909/88770191
启动
解压后打开nacos/bin,双击startup.cmd即可启动
或者 使用命令行 startup.cmd -m standalone
为什么要加上 -m standalone呢,在nacos1.3.2之后默认是集群模式,这里改为单机模式,或者打开startup.cmd修改MODE为standalone
这样服务就启动成功了
重启springboot服务打开127.0.0.1/nacos
这时候刚才启动的服务添加进来了
Nacos配置中心
1.引入依赖
<!-- 配置中心 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- springboot2.4以上需要添加-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
2.创建bootstrap.properties文件
bootstrap.properties
#服务名称
spring.application.name=mall-coupon
#nacos地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
#配置命名空间(如果有指定)
#spring.cloud.nacos.config.namespace=*************
#配置分组(如果有指定)
#spring.cloud.nacos.config.group=*************
3.在配置中心添加数据集
在配置列表中添加配置文件
命名规则为应用名.properties
4.动态获取配置
在类上添加注解
@RefreshScope:动态获取并刷新配置
@Value(“${配置项名}”):获取配置
@RestController
@RequestMapping("test")
@RefreshScope
public class testController {
@Value("${coupon.user.name}")
private String name;
@Value("${coupon.user.age}")
private Integer age;
@RequestMapping("/test")
public R test(){
return R.ok().put("name",name).put("age",age);
}
}
5.加载多数据集
创建命名空间,以及组
spring.application.name=*********
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=****命名空间id***
#默认的组
spring.cloud.nacos.config.group=dev
spring.cloud.nacos.config.extension-configs[0].data-id=datasource.yml
#组
spring.cloud.nacos.config.extension-configs[0].group=dev
#自动刷新
spring.cloud.nacos.config.extension-configs[0].refresh=true
spring.cloud.nacos.config.extension-configs[1].data-id=mybatis.yml
spring.cloud.nacos.config.extension-configs[1].group=dev
spring.cloud.nacos.config.extension-configs[1].refresh=true
spring.cloud.nacos.config.extension-configs[2].data-id=other.yml
spring.cloud.nacos.config.extension-configs[2].group=dev
spring.cloud.nacos.config.extension-configs[2].refresh=true