个人名片:
博主:酒徒ᝰ.
个人简介:沉醉在酒中,借着一股酒劲,去拼搏一个未来。
本篇励志:三人行,必有我师焉。
本项目基于B站黑马程序员Java《SpringCloud微服务技术栈》,SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 点击观看
在nacos的bin目录下,鼠标在空白处右击,在终端打开。
输入指令:.\startup.cmd -m standalone
nacos中配置的是userservice-dev.yaml,所有以下操作在user-service模块中进行。
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
dependency>
spring:
application:
name: userservice # 服务名称
profiles:
active: dev # 环境
cloud:
nacos:
server-addr: localhost:8848 # nacos地址
config:
file-extension: yaml # 文件后缀名
package cn.itcast.user.web;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@RestController
@RequestMapping("/user")
public class UserController {
@Value("${pattern.dateformat}")
private String dateformat;
@GetMapping("/now")
public String now(){
return LocalDateTime.now().format(
DateTimeFormatter.ofPattern(properties.getDateformat())
);
}
/*
省略...
*/
}
4.测试
http://localhost:8081/user/now
此时,当我们修改nacos中的配置上,还需要重新启动服务才可以生效。
目的:我们需要修改nacos中的配置后,直接生效。
import org.springframework.cloud.context.config.annotation.RefreshScope;
@RefreshScope
public class UserController {
//...省略
}
1.创建一个新的模块config并在其中创建新的类PatternProperties。
2.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;
}
3.修改Controller中的代码,前面创建PatternProperties类后,将nacos的配置移入新的类中,这里需要调用新的类来获取,便于热更新。
package cn.itcast.user.web;
import cn.itcast.user.config.PatternProperties;
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")
public class UserController {
@Autowired
private PatternProperties properties;
@GetMapping("/now")
public String now(){
return LocalDateTime.now().format(
DateTimeFormatter.ofPattern(properties.getDateformat())
);
}
}
优先级:[服务名]-[profile].[yaml] > [服务名].[yaml] > [本地配置]
此时,无论**[服务名]-[profile].[yaml]中的profile如何改变,[服务名].[yaml] **一定会加载。
在需要修改的service上右键选择Edit
在Active profiles中输入修改后的profile值。
1.方法一:extension-configs
spring:
cloud:
nacos:
config:
extension-configs:
- extend.yaml
2.方法二:shared-configs
spring:
cloud:
nacos:
config:
shared-configs:
- common.yaml
nacos集群搭建.md
1.未启动nacos服务器,报Connection refused: connect异常,如下。
按照正确操作启动nacos即可。