发布于2022-10-04 14:22 阅读(810) 评论(0) 点赞(26) 收藏(3)
博主介绍: 22届计科专业毕业,来自湖南,主要是在CSDN记录一些自己在Java开发过程中遇到的一些问题,欢迎大家一起讨论学习,也欢迎大家的批评指正。
背景:我在学习谷粒商城项目搭建nacos配置中心时,遇到一直无法动态刷新的问题,本文将介绍以下几点内容:
1、windows下nacos的安装与启动;
2、如何简单使用nacos的配置中心;
3、已经我自己遇到的问题与解决方案。
nacos1.4.2百度云盘下载地址:
链接:https://pan.baidu.com/s/1efhYx7YDW_RXiwX-DzdIEw
提取码:jok0
下载之后直接解压就可以了,nacos默认是集群默认启动,所以我们需要做一个修改操作:
进入nacos/bin目录中,找到startup.cmd
文件,然后文本编辑器打开,将cluster
修改成 standalone
:
然后再双击startup.cmd
就可以运行了,浏览器访问 http://localhost:8848/nacos/#/login 就可以进入nacos
登录页面了,账号和密码都是nacos
首先要注意:springboot 、springcloud与springcloud alibaba 三者对应的版本,详细对应版本信息。
我的版本分别是:
<spring-boot.version>2.1.8.RELEASE</spring-boot.version>
<spring-cloud.version>Greenwich.SR3</spring-cloud.version>
<spring-alibaba.version>2.1.0.RELEASE</spring-alibaba.version>
使用配置中心之前,应该要确保服务已在nacos中注册成功,这里还是以配置中心为主要内容,服务注册就不讲了。
nacos配置中心步骤:
引入依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
在 resources
目录中新增 bootstrap.properties
文件,文件内容如下:
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.application.name=gulimall-coupon
在新建一个 application.properties
文件,文件内容中添加以下内容:
coupon.user.name="张三"
coupon.user.age=13
在控制层添加测试代码,注意@RefreshScope
注解是实现动态刷新的关键,必须添加:
@RestController @RequestMapping("coupon/coupon") @RefreshScope public class CouponController { @Autowired private CouponService couponService; @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); } }
启动项目,先访问测试地址,得到如下数据,正是在application.properties
文件中配置的值。
接下来我们在nacos中添加配置文件:
下面是我配置的文件,注意:Data ID
是 bootstrap.properties
文件对应的 spring.application.name
的值,加上properties
后缀也就是,gulimall-coupon.properties
,这些都是可以自己配置的,具体可以参考官方文档,中dataId
部分。
发布之后刷新浏览器再次访问得到的数据已经发生变化,这说明配置成功了:
问题:项目没有报错,nacos也启动成功了,并且服务也注册成功了,就是配置中心没有生效。
原因:我的 gulimall-coupon
模块是引入了 gulimall-common
模块,我在 gulimall-common
中已经引入了下图依赖,然后我在 gulimall-coupon
模块中也引入了 下图 依赖,应该是因为依赖冲突,导致配置中心没有生效,删除 gulimall-coupon
中下图依赖就可以了。
项目中即使存在重复依赖,有可能可以运行成功的,我的就是这样,但是执行 maven clean
就会报错,
所以大家在遇到这种类似的问题的时候,可以先执行一下 maven clean
命令来进行检查,这个问题搞了我好久,一直以为我是配置的方法不对,就是执行 maven clean
才发现的问题。
原文链接:https://blog.csdn.net/LoveStady/article/details/126160055
作者:以天使的名义
链接:http://www.javaheidong.com/blog/article/526920/20c27a4a048a22d0677f/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!