Spring-PlaceHolder,找不到变量替换

问题描述:Spring中xml配置并使用了properties文件,项目启动时,提示找不到变量。

引入properties的配置如下


properties文件如下

order.jdbc0.url=jdbc:mysql://45140.mysql.db.com:3358/order?characterEncoding=UTF8
order.jdbc1.url=jdbc:mysql://45140.mysql.db.com:3358/order?characterEncoding=UTF8
order.jdbc2.url=jdbc:mysql://45140.mysql.db.com:3358/order?characterEncoding=UTF8

变量如下:


    
    
    
    
    
    
    
    
    
    
    
    
    

追踪:确认变量的k和别名一一对应,无重复引用,placeHolder确实加载了properties文件,变量所在bean的初始化在placeHolder之后,和Bean启动顺序无关。

Debug了placeHolder的变量栈,发现变量池中变量order.jdbc0.url前面有一个制表符,导致识别不了这个变量。properties文件使用GBK编码,且此变量位于该文件的第一行第一个字符起,在变量前面加上一个回车后问题解决;又,把原文件使用txt清洗后再放进来,问题还会出现,因此必然和编码转换相关。

你可能感兴趣的:(Spring-PlaceHolder,找不到变量替换)