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 可能会给您一些见解。
我们在应用程序中使用 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 可能会给您一些见解。