2014-03-07 85 views
0

我已经通过eclipse创建了一个Spring MVC项目。我相信我使用了一些插件来生成项目目录。我在这里找到配置文件。Eclipse Spring MVC项目配置文件

  1. 的web.xml
  2. 根的context.xml
  3. 的servlet-context.xml的

  4. 我还挺熟悉Spring MVC &其依赖注入。不过,我在理解最后两个配置文件(root-context & servlet-context)时遇到了问题。 它们包含什么样的配置?

  5. 另外在可能的在线示例中,我将看到mvc-dispatcher-servlet.xml。为什么eclipse不能在我的项目中生成这个xml文件?

  6. [重要]我想为我的web应用程序设置强大的安全性和用户身份验证。我一直在关注在线教程,他们都创建了一个名为spring-security.xml的单独的 xml文件,并将命名空间信息添加到该文件中。如果我只是创建这个文件并添加名称空间信息就足够了吗?我的意思是 dont'我需要将该文件导入到由Spring框架扫描的主文件中?

  7. 如何定义和在哪里放置spring应用程序context.xml文件并开始将依赖关系连接在一起?另外如果我定义了所有的东西(这里所有的依赖),这个文件是如何被框架拾取的?

感谢,

回答

2

配置文件

如果你检查你的web.xml,你会发现两者的root-context.xmlservlet-context.xml文件正在这里所指。一个使用Dispatcher Servlet和其他Context Loader Listenter。除非他们在web.xml中被吹罚

Eclipse中不产生文件

每一个编辑的工作自己的方式,你可以命名您的文件什么的。有些可能会生成完整的项目/应用程序,配置DispatcherServletContextLoaderListner,或者一些仅使用DispatcherServlet(具有最小配置)。检查Spring Roo它从基础开始,并为您提供生成强大应用程序的灵活性。

MVC-调度-servlet.xml中不存在

一些春季项目的事情都约定基础,例如,如果你没有提供任何文件到您的DispatcherServletweb.xml春季查找mvc-dispatcher-servlet.xml文件,如果你提供了它不会寻找。

春季安全

配置Spring安全,您需要提供至少一些配置。但问题在哪里。您只需将此配置添加到您的web.xml。因此不需要将其导入任何其他文件。

<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener- class> 
</listener> 
<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value> 
     /WEB-INF/spring/spring-security.xml       
    </param-value> 
</context-param> 
<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> 

如果定义应用程序的context.xml

只要定义它的任何地方,在它配置豆类。 可以按如下方式添加此文件:

一)无论是导入到这个像root-context.xmlservlet-context.xml 一些其他的配置文件作为<import resource="application-context.xml"/>

B)添加到这个web.xml中与ContextLoaderListnercontext param

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value> 
      classpath*:META-INF/spring/application-context*.xml 
      classpath*:META-INF/spring/abc*.xml 
    </param-value> 
</context-param> 
+0

很好的答案!几乎所有我想知道的答案。尽管我可以补充说我具有spring-security.xml文件中的所有安全配置,并在web.xml中的内引用它。提供良好的关注组织和代码分离。 – Ace