我可以从较小的配置文件中编写Spring配置文件吗?
我有一些项目都使用一个项目作为数据模型。这些项目中的每一个都有自己的应用程序Context.xml文件,其中包含一堆重复的数据内容。
我想有一个模型Context.xml文件和另一个用于我的ui.xml等。
我可以这样做吗?
我有一些项目都使用一个项目作为数据模型。这些项目中的每一个都有自己的应用程序Context.xml文件,其中包含一堆重复的数据内容。
我想有一个模型Context.xml文件和另一个用于我的ui.xml等。
我可以这样做吗?
将容器定义拆分为多个 XML 文件通常很有用。然后加载从所有这些 XML 片段配置的应用程序上下文的一种方法是使用应用程序上下文构造函数,该构造函数采用多个资源位置。使用Bean工厂,可以多次使用Bean定义读取器依次从每个文件中读取定义。
通常,Spring团队更喜欢上述方法,因为它使容器配置文件不知道它们正在与其他文件组合的事实。另一种方法是使用元素的一个或多个实例从另一个文件(或多个文件)加载 Bean 定义。让我们看一个示例:
<import resource="services.xml"/> <import resource="resources/messageSource.xml"/> <import resource="/resources/themeSource.xml"/> <bean id="bean1" class="..."/> <bean id="bean2" class="..."/>
在此示例中,从 3 个文件加载外部 Bean 定义:服务.xml、messageSource.xml 和 themeSource.xml。所有位置路径都被视为相对于执行导入的定义文件,因此服务.xml在这种情况下必须与执行导入的文件位于同一目录或类路径位置,而 messageSource.xml和 themeSource.xml 必须位于导入文件位置下方的资源位置。如您所见,前导斜杠实际上被忽略,但考虑到这些被认为是相对路径,因此根本不使用斜杠可能是更好的形式。根据Spring模式或DTD,要导入的文件的内容必须是有效的XML Bean定义文件,包括顶级元素。
我们在工作项目中使用Spring中的classpath*资源加载器来执行此操作。对于某个应用程序,将加载包含应用程序ID的所有应用程序上下文文件:
classpath*:springconfig/spring-appname-*.xml