我正在开发一个没有注释的Spring 2.0项目.我们使用具有不同前缀和后缀的几个PropertyPlaceholderConfigurer bean来加载来自不同属性文件的属性.这很好用.
由于存在大量属性文件和属性,我希望应用程序列出未使用的属性.这意味着,在属性文件中配置但从未在Spring应用程序上下文中引用的属性.
我编写了一个实现beanfactoryPostProcessor的bean,并且在应用程序上下文中找到了不同PropertyPlaceHolderConfigurers的引用.这给了我一个使用的属性列表.
但是,我无法访问由PlaceHolderConfigurers加载的属性.因此,我无法显示未使用的属性.
有没有(简单)方法来获取PropertyPlaceholderConfigurer的属性?关于如何解决这个问题的任何其他建议?
编辑:解决方案是访问mergeProperties metod,如下所示:
PropertyPlaceholderConfigurer ppc =
(PropertyPlaceholderConfigurer) applicationContext.getBean("yourBeanId");
Method m = PropertiesLoaderSupport.class.getDeclaredMethod("mergeProperties",new Class[] {});
m.setAccessible(true);
Properties loadedProperties = (Properties) m.invoke(propertyPlaceHolder,null);
在获取最初加载的属性并在beanfactoryPostProcessing期间获取beandefinitions之后,其余的很简单.减去两个集合,瞧:我们现在可以列出未使用的属性.
最佳答案
原文链接:https://www.f2er.com/spring/431890.html