我一直在使用Spring MVC一段时间,现在在Glassfish服务器上运行的Netbeans中创建我的项目。虽然一切正常但我觉得我对每个XML文件中的内容都缺乏了解 - 在某些情况下,这导致我只是在每个文件中一个接一个地尝试一大块XML直到它工作。
我在谷歌上找不到任何明确的描述,而且我已经尝试了几次。
我会详细说明我目前的理解,然后是否有人可以跟进更详细的解释,或者让我知道我错误的地方,我会非常感激。
的web.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 - 但在我的项目中它大多是空的,只包含一个viewResolver
。这里应该介绍什么以及它与 web.xml 的区别?
的beans.xml
此文件除了xml根标记<beans>
以及所有项目中的一些命名空间/模式定义外,此时都是空的。它真的需要什么吗?
根标记中的bean-discovery-mode="annotated">
是否为空?
的applicationContext
这似乎是所有实际Spring配置的所在,例如<mvc:annotation-driven />
,<context:component-scan />
等。
您还可以将此配置拆分为多个文件,并使用<import />
将这些文件链接到应用程序上下文中。
的glassfish幅
我大部分都忽略了这个档案,有什么理由我不应该这样做吗?
问题
所以真正的问题是:
提前致谢,
添
答案 0 :(得分:25)
web.xml 是一个应驻留在所有J2EE Web应用程序中的文件。其规范由J2EE规范定义。在这里,您可以配置应用的一般行为。例如servlet,过滤器,安全策略等。
dispatcher-servlet 是Spring MVC框架中的一个特殊servlet。您必须在 web.xml 中定义其映射,才能在您的网络应用中启用Spring。
beans.xml 是用于配置某些CDI设置的文件。例如bean-discovery-mode="annotated"
表示只有带有CDI范围注释的类才会被视为CDI托管bean。
applicationContext.xml 这里你实际上是对的。它是主Spring配置文件的通用名称。你可以在这里设置很多东西,比如创建和连接一些Spring bean。
glassfish-web.xml 通常是GlassFish服务器的 web.xml 的扩展。并不总是需要它。如果想要专门为GlassFish服务器配置一些设置,则需要它。例如,如果您在 web.xml 中配置安全性部分,则必须将用户角色从 web.xml 映射到GlassFish领域角色。
希望它有所帮助。