新增nacos配置
步骤一:引入nacos客户端管理依赖
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-config
步骤二:新建bootstrap配置文件(优先级高于application.yaml),并删除application配置文件相关nacos配置信息
spring:
application:
name: userservice # 服务名称
profiles:
active: dev #开发环境,这里是dev
cloud:
nacos:
server-addr: localhost:8848 # Nacos地址
config:
file-extension: yaml # 文件后缀名
步骤三:测试是否读取成功——添加业务逻辑,读取pattern.dataformat配置
@Slf4j
@RestController
@RequestMapping("/user")
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));
}
// ...略
}
方式一:在@Value注入的变量所在类上添加注解@RefreshScope
@Slf4j
@RestController
@RefreshScope
@RequestMapping("/user")
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注解(新建配置类)
@Component
@Data
@ConfigurationProperties(prefix = "pattern")
public class PatternProperties {
private String dateformat;
}
@Slf4j
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
// 使用patternProperties这个类代替@Value
@Autowired
private PatternProperties patternProperties;
@GetMapping("now")
public String now(){
return LocalDateTime.now().format(DateTimeFormatter.ofPattern(patternProperties.getDateformat()));
}
}
--------------------------------
其实微服务启动时,会去nacos读取多个配置文件,例如:
第一步:初始化数据库 初始化数据库.sql
第二步:配置nacos
#example
127.0.0.1:8845
127.0.0.1.8846
127.0.0.1.8847
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://localhost:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=123
第三步:复制三份nacos,并更改对应的端口 nacos/conf/application.properties
server.port=8847
第四步:分别启动三个nacos:startup.cmd
第五步:配置nigx——在conf/nginx.conf文件,新增如下内容
upstream nacos-cluster {
server 127.0.0.1:8845;
server 127.0.0.1:8846;
server 127.0.0.1:8847;
}
server {
listen 80;
server_name localhost;
location /nacos {
proxy_pass http://nacos-cluster;
}
}
第六步:在userservice/bootstrap.yml配置文件中修改nacos地址
spring:
cloud:
nacos:
server-addr: localhost:80 # Nacos地址