一、nacos中新建服务配置
1、在nacos后台新建配置
2、填写配置信息
二、项目中读取nacos中创建的配置
1、在项目中引入nacos配置管理依赖
<!--nacos客户端配置管理依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2、在项目启动后先获取nacos中的配置再合并到本地application.yml配置文件中
①在application.yml配置文件同级目录新建bootstrap.yml文件(bootstrap.yml 比 application.yml优先级更高)
②将application.yml中nacos有关的配置迁移到bootstrap.yml
bootstrap.yml
spring:
application:
name: userservice #服务名称
profiles:
active: dev # 开发环境,这里是dev
cloud:
nacos:
server-addr: localhost:8848 # nacos 服务器地址
config:
file-extension: yaml #文件后缀名
3、重启项目在controller中定义方法并测试
@Value("${pattern.dateformat}")
private String dateformat;
@GetMapping("now")
public String now(){
return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat));
}
4、成功返回配置nacos配置类型的结果
三、配置热更新
方式一:在controller类上添加@RefreshScope注解
@Slf4j
@RestController
@RequestMapping("/user")
@RefreshScope
public class UserController {
@Autowired
private UserService userService;
@Value("${pattern.dateformat}")
private String dateformat;
@GetMapping("now")
public String now() {
return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat));
}
}
方式二:
使用@ConfigurationProperties注解
1、config中新建PatternProperties类
package cn.itcast.user.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Data
@Component
@ConfigurationProperties(prefix = "pattern")
public class PatternProperties {
private String dateformat;
}
文章来源:https://www.toymoban.com/news/detail-719753.html
2 、在Controller中引用文章来源地址https://www.toymoban.com/news/detail-719753.html
package cn.itcast.user.web;
import cn.itcast.user.config.PatternProperties;
import cn.itcast.user.pojo.User;
import cn.itcast.user.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@Slf4j
@RestController
@RequestMapping("/user")
//@RefreshScope
public class UserController {
@Autowired
private UserService userService;
// @Value("${pattern.dateformat}")
// private String dateformat;
@Autowired
PatternProperties properties;
@GetMapping("now")
public String now() {
return LocalDateTime.now().format
(DateTimeFormatter.ofPattern(properties.getDateformat()));
}
}
到了这里,关于微服务引入Nacos统一配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!