gpt4 book ai didi

java - ClassPathXmlApplicationContext 和 ClassPathResource 之间的区别

转载 作者:行者123 更新时间:2023-12-01 22:30:47 25 4
gpt4 key购买 nike

以下两条语句显然都是用于加载 xml 配置,但它们之间有什么区别?

ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

Resource resource = new ClassPathResource("applicationContext.xml");
BeanFactory factory = new XmlBeanFactory(resource);

这两者之间有什么区别(性能、使用情况)吗?

最佳答案

ClassPathXmlApplicationContext

独立的 XML 应用程序上下文,从类路径中获取上下文定义文件,将普通路径解释为包含包路径的类路径资源名称(例如“mypackage/myresource.txt”)。 对于测试工具以及 JAR 中嵌入的应用程序上下文很有用。配置位置默认值可以通过 AbstractRefreshableConfigApplicationContext.getConfigLocations() 覆盖,配置位置可以表示具体文件,如“/myfiles/context.xml”或 Ant 风格模式,如“/myfiles/*-context.xml”(请参阅​​ AntPathMatcher javadoc 了解模式详细信息)。

注意:如果有多个配置位置,后面的 bean 定义将覆盖早期加载的文件中定义的定义。可以利用这一点通过额外的 XML 文件故意覆盖某些 bean 定义。

这是一个简单、一站式便利的 ApplicationContext。考虑将 GenericApplicationContext 类与 XmlBeanDefinitionReader 结合使用,以实现更灵活的上下文设置。

类路径资源

类路径资源的资源实现。使用给定的 ClassLoader 或给定的 Class 来加载资源。如果类路径资源驻留在文件系统中,则支持解析为 java.io.File,但不支持 JAR 中的资源。始终支持解析为 URL。

更多详情请查看 API http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/core/io/ClassPathResource.html

http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/support/ClassPathXmlApplicationContext.html

关于java - ClassPathXmlApplicationContext 和 ClassPathResource 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27794053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com