当前位置: 首页 > 面试题库 >

将applicationContext拆分为多个文件

浦泳
2023-03-14
问题内容

将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)。两者之一。你也可以使用逗号指定多个配置位置。



 类似资料:
  • 问题内容: 我有从mongodb导出的json文件,如下所示: 大约有30000行,我想将每一行拆分成自己的文件。 (我正在尝试将我的数据转移到榻榻米群集上) 我尝试这样做: 但是我发现它似乎减少了行的负载,而当我期望30000个奇数时,运行此命令的输出仅给了我50个奇数文件! 有没有一种逻辑方法可以使此操作不使用任何适合的方法删除任何数据? 问题答案: 假设您不在乎确切的文件名,如果要将输入拆分

  • 问题内容: 我的体积太大了,很难找到正确的视图。 如何将其拆分为多个文件,然后导入?是否涉及速度损失? 我可以这样吗? 问题答案: 在Django中,所有内容都是Python模块(* .py)。你可以创建一个具有内部视图的文件夹,并且仍然可以导入视图,因为这也实现了Python模块。但是一个例子会更好。 你的原始图片可能如下所示: 使用以下文件夹/文件结构,它将起到相同的作用: viewsa.py

  • 问题内容: 有什么方法可以将.tfrecords文件直接拆分为多个.tfrecords文件,而无需回写每个Dataset示例? 问题答案: 您可以使用如下函数: 例如,要将文件分成100条记录,您可以执行以下操作: 这将创建多个较小的记录文件,等等。

  • 我正在尝试将一个PDF文档拆分为多个文档,其中每个文档包含的最大页数小于最大文件大小。 我的代码目前可以在Eclipse上运行,但是当我点击. jar文件时,java类中的静态方法似乎崩溃了(但是我似乎抓不到异常)。 不工作的代码是: myListOfDocuments=mysplitter。拆分(文件); 在调用上述行时,JVM会以某种方式退出静态方法。加载似乎工作正常,如下所示:PDDocum

  • 问题内容: 我有以下代码: 我将有许多服务(如一项服务),并且我不想将它们全部放在同一个文件中。 我在Stack Overflow中读了另一个问题,我可能需要这样的其他文件:在该文件中写入所有服务,但是当我启动Node时会抛出该错误。 如何分隔代码? 问题答案: 您可以在不同的文件(例如 test-routes.js)中 定义路由,如下所示: 现在在您的主文件中说出 server.js, 您可以像

  • 问题内容: 我在理解如何将Flask应用程序拆分为多个文件时遇到麻烦。 我正在创建一个Web服务,并且想将api拆分为不同的文件(AccountAPI.py,UploadAPI.py等),只是我没有一个巨大的python文件。 我读过你可以使用“蓝图”来做到这一点,但我不确定这条路线对我来说是正确的。 最终,我想运行一个Main python文件,并包含其他文件,以便在运行时将它们视为一个大文件。