哪些bean应该在applicationContext和dispatcherServlet中声明?

3

最初我在 dispatcher-servlet 中声明了所有的bean,我的应用程序可以正常工作。我真的需要一个 applicationContext.xml 文件吗?

2个回答

8

您不一定需要它,但这是一种首选的分离应用程序层的方式:

  • dispatcher-servlet.xml中只放置与Web相关的内容——控制器、视图解析器、转换器等。
  • applicationContext.xml中放置所有服务和DAO,以及其他通用配置。

请注意,您需要声明一个监听器,以便Spring可以加载applicationContext.xml

<listener>
    <listener-class>
       org.springframework.web.context.ContextLoaderListener
    </listener-class>
</listener>

然后,来自applicationContext.xml的上下文将成为父上下文,而dispatcher-servlet.xml中的上下文将成为子上下文。子级可以看到父级中的bean,但父级无法看到子级中的bean。
另外请注意,applicationContext.xml是一个默认名称。您可以通过contextConfigLocation <context-param>更改名称或路径。

0

你不一定需要一个applicationContext.xml文件。但是你确实需要一个xml文件,即使它只是用来告诉Spring自动加载应用程序中的所有bean。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接