Spring 5.3.7 中 locatorFactorySelector 的任何替换

Any replacement for locatorFactorySelector in Spring 5.3.7

我们在应用程序中使用 Spring 4.3.5。当我们尝试将 Spring 提升到 5.3.7 时,我们无法在下面的标签内初始化 beans(在“beanRefFactory.xml”内)-

<context-param>
        <param-name>locatorFactorySelector</param-name>
        <param-value>/beanRefFactory.xml</param-value>
    </context-param> 

经搜索,我们发现“locatorFactorySelector”或“LOCATOR_FACTORY_KEY_PARAM”已在 Spring 5.0.0.M5 中弃用。详情可见here.

如果有任何其他初始化“beanRefFactory.xml”的方法,请提出建议。 我们正在使用基于 XML 的配置。

PS: 已经通过了,但是没有帮助。

我通过创建一个扩展 ContextLoaderListener 的自定义 class BeanFactoryContextLoader.java 解决了这个问题。

public class BeanFactoryContextLoaderListener extends ContextLoaderListener {
    
    private static Logger log = Logger.getLogger(BeanFactoryContextLoaderListener.class);
    
     @Override
        protected ApplicationContext loadParentContext(ServletContext servletContext) {
            
         ApplicationContext ctx = new ClassPathXmlApplicationContext("beanRefFactory.xml");
         
         return ctx;
        }

}

这对我有用。 默认情况下 Spring return 方法“loadParentContext”为空。你需要覆盖它。 This 可能会给您一些见解。