Spring Cloud 配置中心乱码解决
1. springboot 2.X 版本 cloud的配置中心中文乱码解决
乱码原因:
spring 默认使用org.springframework.boot.env.PropertiesPropertySourceLoader 来加载配置,底层是通过调用 Properties 的 load 方法,而load方法输入流的编码是 ISO-8859-1。
网上的解决办法,在配置中心自定义类实现PropertySourceLoader:
public class MyPropertiesHandler implements PropertySourceLoader {private static final Logger logger = LoggerFactory.getLogger(MyPropertiesHandler.class);@Overridepublic String[] getFileExtensions() {return new String[]{"properties", "xml"};}@Overridepublic List<PropertySource<?>> load(String name, Resource resource) throws IOException {/*List<PropertySource<?>> propertySourceList = new ArrayList<PropertySource<?>>();Properties properties = getProperties(resource);if (!properties.isEmpty()) {PropertiesPropertySource propertiesPropertySource = new PropertiesPropertySource(name, properties);propertySourceList.add(propertiesPropertySource);}return propertySourceList;*/Map<String, ?> properties = loadProperties(resource);if (properties.isEmpty()) {return Collections.emptyList();}return Collections.singletonList(new OriginTrackedMapPropertySource(name, properties));}private Map<String, ?> loadProperties(Resource resource) {Properties properties = new Properties();InputStream inputStream = null;try {inputStream = resource.getInputStream();properties.load(new InputStreamReader(inputStream, StandardCharsets.UTF_8));inputStream.close();} catch (IOException e) {logger.error("load inputstream failure...", e);} finally {if (inputStream != null) {try {inputStream.close();} catch (IOException e) {logger.error("close IO failure ....", e);}}}return (Map) properties;}
}
2.在 resources下创建 META-INF 目录 并在目录下创建spring.factories文件
文件内容:org.springframework.boot.env.PropertySourceLoader=com.spring.config.MyPropertiesHandler
(你的自定类路径)
但本人按此照此方法配置依旧乱码。
最终解决办法:
String str = new String(str.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
Spring Cloud 配置中心乱码解决相关推荐
- spring cloud 配置中心
1. spring cloud配置中心server 1.1 创建git仓库 首先在github上搭建一个存储配置中心的仓库,需要创建两个分支,一个是master,一个是dev分支.自己学习可以用公开库 ...
- Spring Cloud配置中心获取不到最新配置信息的问题
本篇源于Spring Cloud Config的一个问题,但这个问题并非所有人都会遇到.如果您遇到了,那必须得看看这篇,如果没有遇到您也应该看看,防患于未然! 问题描述 之前有朋友提出Spring C ...
- Spring Cloud 配置中心客户端读取配置
微服务连接配置中心来实现外部配置的读取. 引入依赖 <dependencies><dependency><groupId>org.springframework.c ...
- spring boot配置ip_Spring Cloud 配置中心高可用搭建
本文通过config server连接git仓库来实现配置中心,除了git还可以使用svn或者系统本地目录都行. 引入依赖 <dependencies><dependency> ...
- Spring Cloud 配置(E.SR5)
Spring Cloud配置(E.SR5) 常用配置 服务注册 服务调用 常用配置 spring.application.name 服务注册 spring.cloud.service-registry ...
- Spring Cloud配置–外部化应用程序配置
本教程是关于Spring Cloud Config的,这里我们将研究如何在不同的应用程序中针对不同的环境(例如开发人员,本地,产品等)使用Spring Cloud Config来管理和存储分布式外部配 ...
- 使用Spring Cloud配置服务器控制配置
一.为什么需要将服务配置与服务代码分开? 在应用开发的过程中,许多开发人员会在应用程序中使用一个或多个常量类文件来将所有的配置集中在一个地方.将应用程序配置数据直接写入代码中通常是有问题的,因为每次对 ...
- idea提示未配置 Spring Boot 配置注解处理器解决方法
未配置 Spring Boot 配置注解处理器 解决方法: 在pom.xml里添加依赖 <dependency><groupId>org.springframework.boo ...
- Spring Cloud - 注册中心
什么是微服务注册中心? 在上一篇文章<Spring Cloud介绍>中,提到有一句话:微服务框架可以为这些微小的服务提供统一的管理和必要的工具,使它们更易于开发和维护. "统一的 ...
最新文章
- DataAccessResourceFailureException异常解决方法
- C语言函数调用一般分,C语言调用声明函数
- BeautifulSoup children descendants对比
- 教育管理系统——android家长客户端
- 开发微信小程序中SSL协议的申请、证书绑定、TLS 版本处理等
- QWidget::size()和QResizeEvent::size()不一定相同!
- 我最近读了什么书?(随时更新)
- CSS相关知识点:6种清除浮动和BFC
- 《推理的迷宫》读书笔记之一
- 尚硅谷2022 jenkins教程笔记
- java文字版格斗游戏
- jQuery Mobile 【弹窗】
- 计算机网络编程基础知识总结思维导图
- html5的video播放腾讯视频播放器,html 5中使用video元素制作一个影片播放器
- oracle 挖掘日志,使用Oracle的Logminer工具进行日志挖掘
- matlab计算惯性矩,梁单元有限元计算程序(matlab)
- Win11预览体验计划显示Your PC does not meet the minimum hardware requirements...的解决方案
- Handle初解,看完你就懂了handle
- 如何关闭电脑自动更新?方案三部曲带你走出自动更新的阴影
- 解决错误 Could not find method leftShift() for arguments
热门文章
- 百度地图有了这么有趣的功能
- Android 8.1 从零开始写 HAL -- (2) 实现 HAL 主体
- graphpad画生存曲线怎么样去掉删失点_Graphpad Prism 绘制散点图
- codeforces 85D. Sum of Medians(线段树or分块)
- Games101 学习笔记
- Newton-Raphson切线法解高次方程近似根
- CS294-112 深度强化学习 秋季学期(伯克利)NO.9 Learning policies by imitating optimal controllers...
- Cardboard的学习(一)Cardboard的介绍
- 2 Python快速上手
- 【C语言】C语言的三种基本控制结构-顺序、选择、循环