spring 多placeHolder问题的解决方案 | i flym
从原spring issue原文也可以看到,解析此问题的主要思路即通过针对每一个context设置一个统一的valueRevoler,它通过读取所有的placeHolder对象,并将相应的属性进行merge起来,提供一个整体的属性解析器。在处理属性解析时,即可通过之前已经merge的属性对中进行解析,这样就避免了前一个解析器不能解析而返回默认值的情况。
同时,考虑到在一个进程中,可能会有多个context的存在(比如spring mvc web工程web context和core context的区别),因此要求在进行属性解析时,两者的属性也不能进行重合。
这样思路,就是创建一个统一的propertySrouces对象,它将在不同的 PropertySourcesPlaceholderConfigurer 共享数据,并且将多次的数据进行整合在一起。包装成一个统一的数据源提供给context进行处理。
Read full article from spring 多placeHolder问题的解决方案 | i flym
No comments:
Post a Comment