1. Spring properties配置项不能解析问题

本地部分配置文件迁到disconf,希望disconf的配置文件交由spring托管。这样的话,原有代码中引用配置的地方就不用变(还是用${key}的方式)。

在disconf上找到了配置方式:http://disconf.readthedocs.io/zh_CN/latest/tutorial-client/src/Tutorial5.html

结果启动后报异常,解析不了配置:Could not resolve placeholder

Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'zookeeper.registry.address' in string value "${zookeeper.registry.address}"at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:174)at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:126)at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:204)at org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:178)at org.springframework.context.support.PropertySourcesPlaceholderConfigurer$2.resolveStringValue(PropertySourcesPlaceholderConfigurer.java:175)at org.springframework.beans.factory.config.BeanDefinitionVisitor.resolveStringValue(BeanDefinitionVisitor.java:282)at org.springframework.beans.factory.config.BeanDefinitionVisitor.resolveValue(BeanDefinitionVisitor.java:209)at org.springframework.beans.factory.config.BeanDefinitionVisitor.visitPropertyValues(BeanDefinitionVisitor.java:141)at org.springframework.beans.factory.config.BeanDefinitionVisitor.visitBeanDefinition(BeanDefinitionVisitor.java:82)at org.springframework.beans.factory.config.PlaceholderConfigurerSupport.doProcessProperties(PlaceholderConfigurerSupport.java:208)... 37 more

View Code

查看disconf的配置,断点,看到disconf交由spring托管的配置已经加载。
后面找到原因,是应用配置了多个 org.springframework.context.support.PropertySourcesPlaceholderConfigurer,导致了配置覆盖。
https://www.cnblogs.com/YingYue/p/5699962.html

保留的配置:

<bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer"><property name="ignoreUnresolvablePlaceholders" value="true" /><property name="locations"><list><value>classpath:xx.properties</value> </list></property>
</bean>

放disconf的配置:

<!-- 使用托管方式的disconf配置(无代码侵入, 配置更改不会自动reload) -->
<bean id="configproperties_no_reloadable_disconf"class="com.baidu.disconf.client.addons.properties.ReloadablePropertiesFactoryBean"><property name="locations"><list><value>config.properties</value></list></property>
</bean><bean id="propertyConfigurerForProject1"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="ignoreResourceNotFound" value="true" /><property name="ignoreUnresolvablePlaceholders" value="true" /><property name="propertiesArray"><list><ref bean="configproperties_no_reloadable_disconf" /></list></property>
</bean>

View Code

Spring踩坑记录相关推荐

  1. mybatis学习与踩坑记录

    mybatis resultmap高级映射 应用场景:如果sql查询的列名和pojo的属性名不一致,可以使用resultMap将列名和pojo的属性名作一个对应关系,就可以映射成功了.(如果返回值为i ...

  2. 日常踩坑记录-汇总版

    开发踩坑记录,不定时更新 心得 RTFM 严谨的去思考问题,处理问题 严格要求自己的代码编写习惯与风格 注意 单词拼写 20200207 mybatis plus 自带insert插入异常 sql i ...

  3. Canal 及canal.admin(v1.1.5)踩坑记录

    网址:GitHub - alibaba/canal: 阿里巴巴 MySQL binlog 增量订阅&消费组件 前期软件准备 上面的软件包(canal.deployer-1.1.5.tar.gz ...

  4. springcloud踩坑记录1

    idea使用spring intaller 创建eureka服务踩坑记录 1.SpringBoot与SpringCloud的版本号需要一一对应,具体内容请查看官网. 2.Maven引入Eureka包时 ...

  5. JPA使用@Modifying踩坑记录

    JPA使用@Modifying踩坑记录 一.问题现象 开发过程中使用@Query和@Modifying批量删除数据失败,造成线上服务异常 二.问题排查 通过查看日志发现,执行批量删除出现错误日志: H ...

  6. 为Jupyter notebook配置R kernel过程及踩坑记录

    为Jupyter notebook配置R kernel过程及踩坑记录 注意:本文为作者安装过程及折腾的过程,内容比较冗杂,如果读者想直接创建一个属于自己的子环境则参考: 如下文章: anaconda下 ...

  7. Python打包工具Pyintealler打包py文件为windows exe文件过程及踩坑记录+实战例子

    Python打包工具Pyintealler打包py文件为windows exe文件过程及踩坑记录+实战例子 目录 Python打包工具Pyintealler打包py文件为windows exe文件过程 ...

  8. TVM: Deep Learning模型的优化编译器(强烈推荐, 附踩坑记录)

    本文作者是阿莱克西斯,原载于知乎,雷锋网(公众号:雷锋网)获得授权转载. (前排提醒,本文的人文内容部分稍稍带有艺术加工,请保持一定的幽默感进行阅读) 关注我最近想法的同学应该知道我最近都在把玩 TV ...

  9. 使用Java读取 “Python写入redis” 的数据踩坑记录

    https://my.oschina.net/u/2338224/blog/3061507 使用Java读取 "Python写入redis" 的数据踩坑记录 https://seg ...

最新文章

  1. 47%德国企业认为人工智能较大的优势是提高生产效率
  2. SP-45ML光电二极管放大电路及其动态特性
  3. 实现点击下载文件的几种方法
  4. 决策树—ID3(源码解析)
  5. Python机器学习实践:决策树判别汽车金融违约用户
  6. [众包]Eclipse 运行简单亚马逊AMT模板
  7. android 设置view最大高度,android-在RecyclerView上设置最大高度
  8. moment获取几小时前_请问怎么把“多少小时前”精确到“多少小时多少分钟前”...
  9. 10. 大型网站核心架构要素
  10. 给自己一个anchor,挑战不可能
  11. oracle交叉运算符,Oracle语句优化44个规则详解
  12. BZOJ 3689: 异或之 可持久化trie+堆
  13. 如何压缩图片?手把手教你三种图片缩小的办法
  14. 记一个 Harvester SNAT 案例
  15. 重积分的计算机应用开题报告,重积分的数值计算【信息科学与技术专业】【毕业设计 文献综述 开题报告】.docx...
  16. ​微信公众号素材图片去哪找?
  17. Eureka注册中心上服务老是自动挂掉相关问题总结
  18. 【Hotel TV】三星商用TV解决方案
  19. Soundiron Bontastic Vintage Italian Chord Organ 复古意大利和弦风琴
  20. 简介企业如何通过企业erp系统实现智能化管理?

热门文章

  1. 面试:如何决定使用 HashMap 还是 TreeMap?
  2. 用了 Lambda 之后,发现可以忘记设计模式了
  3. 如何为linux服务器配置DNS解析?
  4. 尹伊:我眼中的Datawhale
  5. 达摩院发布2022十大科技趋势!
  6. 数据读取与数据扩增方法
  7. 如何阅读一份深度学习项目代码?
  8. 解读 | 2019 年 10 篇计算机视觉精选论文(上)
  9. Attention is not all you need
  10. 134个预训练模型、精度高达85.1%,百度视觉算法最强基石PaddleClas全新升级