赞
踩
创造来源:在学习微服务这部分内容的时候遇到很多bug,改了又改,最后改好了。以下是我修改后实现配置拉取的代码,这里我使用了鉴权,所以配置里面有使用到下面的代码,如果没有配置鉴权则删掉下面代码。新版本的nacos默认没有鉴权需要自己去配置,当然不使用也可以实现拉取。我使用的也是最新版本的springcloud和nacos。
配置鉴权可以参考我之前这个博文:学习springcloud中Nacos笔记-CSDN博客
注意!注意!注意!如果没有使用鉴权去yml文件里面删掉这段配置。
username: nacos #用户名 password: nacos #密码
记得Data Id不要写错
userservice-public.yaml
这里附上配置内容:
- pattern:
- dateformat: yyyy-MM-dd HH:mm:ss
配置成功后去idea里面拉取。
- <!--nacos配置管理依赖-->
- <dependency>
- <groupId>com.alibaba.cloud</groupId>
- <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId
- ></dependency>
-
- <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud- starter-bootstrap -->
- <dependency>
- <groupId>org.springframework.cloud</groupId>
- <artifactId>spring-cloud-starter-bootstrap</artifactId>
- <version>4.1.2</version>
- </dependency>
由于在新版本的nacos里面不再默认支持bootstrap,所以需要自己导入。这里我也选择最新版本,适配springcloud和nacos。
maven版本推荐可以在这里找:https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-bootstrap
bootstrap.yml会提前于其他yml文件在项目被先读取到nacos。
- spring:
- application:
- name: userservice
- profiles:
- active: public #环境配置,和nacos配置里面的环境一致,环境用命名空间来命名
- cloud:
- nacos:
- discovery:
- server-addr: localhost:8848
- config:
- file-extension: yaml #文件名后缀
- # data-id: userservice-public.yamluserservice-public.yaml
- namespace: public
- username: nacos #用户名
- password: nacos #密码
这里我使用默认的命名空间,注意用户名密码如果不配做鉴权则不用,老版本的nacos也不用(如果没有提示要配置鉴权)
- spring:
- # application:
- # name: userservice #user服务的名称
- cloud:
- nacos:
- # server-addr: localhost:8848 #nacos服务地址
- discovery:
- namespace: public
- # cluster-name: HZ #设置集群名称,这里HZ代指杭州,SH代表上海
- username: nacos #用户名
- password: nacos #密码
由于bootstrap.yml会被先读取,nacos里面不用配置也行
//UserController
- @Slf4j
- @RestController
- @RequestMapping("/user")
- public class UserController {
-
- @Value(value = "${pattern.dateformat}")
- private String dateformat;
-
- @GetMapping("now")
- public String now(){
- System.out.println(dateformat);
- return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat));
- }
- }
浏览器:
idea:
成功!!!
曾经也遇到bug:就是找不到${pattern.dateformat}这个,但是在我按照上述的步骤写完后,出现clean和编译maven,重启nacos服务,后来就成功了,整整搞了一下午的bug。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。