将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.xm
l在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