前言
下载
启动
双击 bin 中的 startup.cmd 文件
一、nacos作为服务中心操作
1.添加依赖
<!--Spring-could-alibab-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.1.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--服务注册发现-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
2.添加配置信息
yml文件
spring:
application:
name: gulimall-coupon
cloud:
nacos:
discovery:
server-addr: localhost:8848
注意:spring.application.name是必须要写的,作用是给服务起个名称。不写的话,nacos不知道叫什么就注册不上。
3.开启服务注册发现
在启动类上加入@EnableDiscoveryClient注解,不加注解是注册不上的。
@SpringBootApplication
@EnableDiscoveryClient
public class ProviderApplication {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
4.启动服务
自此,服务就注册上来了。
二、nacos作为配置中心操作
1.添加依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2.创建一个名为bootstrap.properties文件
加入下方内容
注意:spring.application.name的名称要和下方在nacos文件创建的配置文件名称保持一致。
比如:我的叫test,nacos中创建的叫 test.propertis
# 服务名称,,nacos-config-example要填写成自己的服务名称哦
spring.application.name=nacos-config-example
# 地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
3.在nacos中创建一个配置文件
4.动态获取配置
在需要动态获取的类似添加注解
@RefreshScope:动态获取并刷新配置
@Value("${配置项的名称}"):获取到配置
例如:
@RefreshScope
@RestController
@RequestMapping
public class TestController {
@Autowired
private CouponService couponService;
@Value("${test.user.name}")
private String name;
@Value("${test.user.age}")
private Integer age;
@RequestMapping("/test")
public Map test() {
return new HashMap().put("name", name)).put("age", age);
}
}
我配置的nacos中的文件内容如下:
运行结果
三、扩充学习
SpringBoot配置文件执行顺序:
1、SpringBoot的总体读取顺序优先级包外大于包内,properties大于yml。
2、 SpringBoot的总体读取顺序如下所示:
config/application.properties(项目同级目录中config目录下)
config/application.yml
application.properties(项目同级目录下)
application.yml
resources/config/application.properties(项目resources目录中config目录下)
resources/config/application.yml
resources/application.properties(项目的resources目录下)
resources/application.yml
优先级:
.properties文件>.yml>.yaml