第十一章:SpringCloud组件-Nacos配置中心
1:获取配置文件中的常量@Value
定义两个常量:resources\application.properties
product.name=xiaomi
product.price=998
编写测试函数:com.applesnt.onlinemall.product.controller.BrandController
@RestController
@RequestMapping("product/brand")
public class BrandController {
@Autowired
private BrandService brandService;
@Value("${product.name}")
private String bname;
@Value("${product.price}")
private String bprice;
/*获取配置文件中的常量*/
@RequestMapping("/getBrand")
public R getPropertiesValue(){
return R.ok().put("name",bname).put("price",bprice);
}
访问:http://localhost:10000/product/brand/getBrand
2:nocos配置中心(基本配置+命名空间)
1、在onlinemall-common公共项目中加入nacos配置中心的依赖
<!--nacos配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
2、在nacos中创建一个命名空间
命名空间的作用是为了隔离加载每个应用使用的配置,一般一个微服务一个命名空间
3、在product命名空间下创建配置文件
项目一旦开启nacos配置中的功能,默认会加载一个应用名称.properties的文件
4、在onlinemall-product项目的resource目录下创建配置中心的配置文件
bootstrap.properties
#配置中心地址
spring.cloud.nacos.config.server-addr=116.196.121.63:8848
#配置命名空间 要写命名空间的id
spring.cloud.nacos.config.namespace=d125753c-a9f9-4b21-b705-1da6b12d1915
5、在项目的测试类中开启动态获取功能
在BrandController类中增加注解:@RefreshScope
/*动态获取配置中心的数据*/
@RefreshScope
@RestController
@RequestMapping("product/brand")
public class BrandController {
@Autowired
private BrandService brandService;
@Value("${product.name}")
private String bname;
@Value("${product.price}")
private String bprice;
/*获取配置文件中的常量*/
@RequestMapping("/getBrand")
public R getPropertiesValue(){
return R.ok().put("name",bname).put("price",bprice);
}
6、启动项目访问测试
3:nocos配置中心(命名空间+组来区分环境)
1、创建不同组的配置文件
在product命名空间下创建两个不同分组(test和dev)的onlinemall-product.properties文件
2、修改项目配置文件,指定使用哪个组
#配置中心地址
spring.cloud.nacos.config.server-addr=116.196.121.63:8848
#配置命名空间 要写命名空间的id
spring.cloud.nacos.config.namespace=d125753c-a9f9-4b21-b705-1da6b12d1915
#指定使用dev组的配置
spring.cloud.nacos.config.group=dev
3、访问测试
4:nocos配置中心(拆分多配置文件)
1、拆分配置文件
把项目中的application.yml拆分成三个配置中心的配置(datasource.yml mybatis.yml other.yml)
2、修改项目配置文件,使用哪些配置文件
#必须配置应用名称,否则不读取默认的配置文件
spring.application.name=onlinemall-product
#配置中心地址
spring.cloud.nacos.config.server-addr=116.196.121.63:8848
#配置命名空间 要写命名空间的id
spring.cloud.nacos.config.namespace=d125753c-a9f9-4b21-b705-1da6b12d1915
#加载datasource.yml配置文件
spring.cloud.nacos.config.ext-config[0].data-id=datasource.yml
spring.cloud.nacos.config.ext-config[0].group=dev
spring.cloud.nacos.config.ext-config[0].refresh=true
#加载mybatis.yml配置文件
spring.cloud.nacos.config.ext-config[1].data-id=mybatis.yml
spring.cloud.nacos.config.ext-config[1].group=dev
spring.cloud.nacos.config.ext-config[1].refresh=true
#加载other.yml配置文件
spring.cloud.nacos.config.ext-config[2].data-id=other.yml
spring.cloud.nacos.config.ext-config[2].group=dev
spring.cloud.nacos.config.ext-config[2].refresh=true
3、清空配置
把项目中的application.yml配置文件清空