将applicationContext拆分为多个文件

将Spring的配置拆分为多个xml文件的正确方法是什么?

此刻我有

  • /WEB-INF/foo-servlet.xml
  • /WEB-INF/foo-service.xml
  • /WEB-INF/foo-persistence.xml

web.xml有以下内容:

<servlet>

<description>Spring MVC Dispatcher Servlet</description>

<servlet-name>intrafest</servlet-name>

<servlet-class>

org.springframework.web.servlet.DispatcherServlet

</servlet-class>

<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>

/WEB-INF/foo-*.xml

</param-value>

</init-param>

<load-on-startup>2</load-on-startup>

</servlet>

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>

/WEB-INF/foo-*.xml

</param-value>

</context-param>

<listener>

<listener-class>

org.springframework.web.context.ContextLoaderListener

</listener-class>

</listener>

实际问题:

  • 这种方法正确/最佳吗?
  • 我真的需要同时指定中的配置位置DispatcherServlet 和该context-param板块?

    我需要记住什么才能能够引用foo-servlet.xmlfrom中定义的bean foo-service.xml?这与contextConfigLocationin 指定有关web.xml吗?

更新1:

我正在使用Spring Framework 3.0。据我了解,我不需要像这样进行资源导入:

 <import resource="foo-services.xml"/> 

这是正确的假设吗?

回答:

我发现以下设置最简单。

使用DispatcherServlet的默认配置文件加载机制:

该框架将在初始化DispatcherServlet时,在你的Web应用程序的WEB-INF目录中查找名为[servlet-name] -servlet.xml的文件,并在其中创建定义的Bean(覆盖所有使用在全球范围内具有相同的名称)。

就你而言,只需intrafest-servlet.xml在WEB-INFdir中创建一个文件,而无需在中指定任何特定信息web.xml

intrafest-servlet.xml文件中,你可以使用import来组成你的XML配置。

<beans>

<bean id="bean1" class="..."/>

<bean id="bean2" class="..."/>

<import resource="foo-services.xml"/>

<import resource="foo-persistence.xml"/>

</beans>

请注意,Spring团队实际上在创建(Web)ApplicationContext时更喜欢加载多个配置文件。如果你仍然希望以此方式进行操作,那么我认为你无需同时指定上下文参数(context-param)和 servlet初始化参数(init-param)。两者之一。你也可以使用逗号指定多个配置位置。

以上是 将applicationContext拆分为多个文件 的全部内容, 来源链接: utcz.com/qa/425063.html

回到顶部