酒店网站做的比较好的,推广网上国网,wordpress 时间设置,京东做代码的网站文章目录 一、统一配置管理Nacos操作二、统一配置管理java操作1.引入依赖2.创建配置文件3.测试4.总结 三、Nacos配置自动更新1.添加注解RefreshScope2.使用ConfigurationProperties注解3.总结 四、Nacos多环境配置共享1.配置文件2.多种配置的优先级3.总结 一、统一配置管理Naco… 文章目录 一、统一配置管理Nacos操作二、统一配置管理java操作1.引入依赖2.创建配置文件3.测试4.总结 三、Nacos配置自动更新1.添加注解RefreshScope2.使用ConfigurationProperties注解3.总结 四、Nacos多环境配置共享1.配置文件2.多种配置的优先级3.总结 一、统一配置管理Nacos操作
在Nacos中添加配置信息 在弹出表单中填写配置信息 配置获取的步骤如下 二、统一配置管理java操作
1.引入依赖
引入Nacos的配置管理客户端依赖 !--nacos的配置管理依赖--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId/dependency2.创建配置文件
在user-service客户端服务提供者中的resource目录添加一个bootstrap.yml文件这个文件是引导文件优先级高于application.yml
spring:application:name: userservice #服务名称profiles:active: dev #环境cloud:nacos:server-addr: localhost:8848 #nacos地址config:file-extension: yaml #文件后缀名3.测试
我们在user-service客户端服务提供者中将pattern.dateformat这个属性注入到UserController中做测试 完整代码
package cn.itcast.user.web;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.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;Slf4j
RestController
RequestMapping(/user)
public class UserController {Autowiredprivate UserService userService;Value(${pattern.dateformat})private String dateformat;GetMapping(now)public String now(){return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat));}// ...略
}结果如下
4.总结 三、Nacos配置自动更新
Nacos中的配置文件变更后微服务无需重启就可以感知。不过需要通过下面两种配置实现
1.添加注解RefreshScope 完整代码如下
package cn.itcast.user.web;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.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.*;import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;Slf4j
RestController
RequestMapping(/user)
RefreshScope
public class UserController {Autowiredprivate UserService userService;Value(${pattern.dateformat})private String dateformat;GetMapping(now)public String now(){return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat));}/*** 路径 /user/110** param id 用户id* return 用户*/GetMapping(/{id})public User queryById(PathVariable(id) Long id) {return userService.queryById(id);}
}
2.使用ConfigurationProperties注解 完整代码如下
package cn.itcast.user.config;import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;Component
Data
ConfigurationProperties(prefix pattern)
public class PatternProperties {private String dateformat;
}UserController.java
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.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.*;import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;Slf4j
RestController
RequestMapping(/user)
//RefreshScope
public class UserController {Autowiredprivate UserService userService;// Value(${pattern.dateformat})
// private String dateformat;Autowiredprivate PatternProperties properties;GetMapping(now)public String now(){return LocalDateTime.now().format(DateTimeFormatter.ofPattern(properties.getDateformat()));}/*** 路径 /user/110** param id 用户id* return 用户*/GetMapping(/{id})public User queryById(PathVariable(id) Long id) {return userService.queryById(id);}
}3.总结 四、Nacos多环境配置共享
1.配置文件
其实微服务启动时会去nacos读取多个配置文件例如 [spring.application.name]-[spring.profiles.active].yaml例如userservice-dev.yaml [spring.application.name].yaml例如userservice.yaml
而[spring.application.name].yaml不包含环境因此可以被多个环境共享。 2.多种配置的优先级 3.总结