Web.xml,bean.xml,applicationcontext.xml等之间的区别
我已经与Spring MVC合作了一段时间,现在在Glassfish服务器上运行的Netbeans中创建我的项目。虽然一切正常,但我觉得我对每个XML文件中应该包含的内容缺乏了解 - 在某些情况下,这导致我只是一个接一个地尝试每个文件中的XML块,直到它工作为止。
我无法在Google上找到任何明确的描述,我已经尝试了几次。
我将在这里详细说明我目前的理解,然后如果有人可以跟进更详细的解释或让我知道我在哪里错了,那将不胜感激。
网.xml
这似乎是通过告诉 servlet 容器使用哪些类来处理查询来配置它。令人困惑的是,虽然在这里配置Spring不起作用 - 您需要在此处放置一些配置来安装Spring,即
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
你在web.xml中添加它以使Spring Security正常工作 - 但随后您实际上在另一个文件中配置了Spring Security。
调度程序-servlet
这似乎类似于web.xml因为它是关于配置servlet容器以启用Spring的 - 但是在我的项目中,它大部分是空的,只包含一个.这里应该放些什么,它与网络.xml有何不同?viewResolver
豆类.xml
目前,除了我所有项目中的xml根标记和一些命名空间/架构定义外,此文件都是空的。它真的需要任何东西吗?<beans>
根标记中是否是空的原因?bean-discovery-mode="annotated">
应用语境
这似乎是所有实际弹簧配置的地方,例如,等等。<mvc:annotation-driven />
<context:component-scan />
您还可以将此配置拆分为多个文件,并用于将这些文件链接到应用程序上下文中。<import />
玻璃鱼网
我大部分时间都忽略了这个文件,有什么理由我不应该吗?
问题
所以真正的问题是:
- 我从上面错过了什么?
- 为什么有一个单独的豆子.xml似乎什么都不做?它是注释驱动引入之前的遗产吗?
- 为什么同时存在调度程序-servlet.xml和 web.xml它们之间有什么区别?
- 玻璃鱼网.xml与这两者有何不同?
- 我如何判断xml片段是否应该进入其中的哪个文件,而无需在它们中全部尝试,直到它工作为止?(到目前为止,我开发的粗略经验法则是“应用程序中的弹簧配置context.xml,在web中安装弹簧组件.xml,忽略其他文件”!
提前致谢,
提姆