将nacos作为配置中心
将nacos作为配置中心的好处是,某些需要经常改变的配置一旦变换,在网页上刷新即可生效,而传统的配置需要重新打包发布才能变换配置。
-
导入依赖
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
-
创建一个新的配置文件
bootstrap.properties
,这个配置会优先被读取
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ahO35KUI-1637066976360)(https://static01.imgkr.com/temp/b892b6ffc29f4e86b13d497d95834307.png)]
# 改名字,对应nacos里的配置文件名
spring.application.name=coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
-
远程创建一个跟
bootstrap.properties
配置的name的同名的配置文件# gulimall-coupon.properties coupon.user.name="配置中心" coupon.user.age=12
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p7wOaD3o-1637066976362)(https://static01.imgkr.com/temp/62d34dc142b54823acc7dedf238ccefe.png)]
- 加上动态配置注解和获取值的注解
在控制层
@RefreshScope
@RestController
@RequestMapping("coupon/coupon")
public class CouponController {
@Autowired
private CouponService couponService;
@Value("${coupon.user.name}")//从application.properties中获取//不要写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);
}
新版不让读取bootstrap.properties
所以,我们写在application里就行