【问题标题】:Spring MVC - code based servlet container initializationSpring MVC - 基于代码的 servlet 容器初始化
【发布时间】:2014-01-11 21:50:56
【问题描述】:

我是一个新手,正在经历春季学习曲线,我有一个问题想了解我将在哪些情况下使用基于代码的 servlet 容器初始化来对抗 web 描述符文件中的 xml 初始化。

我提出这个问题的原因是,此时我想花时间学习大部分时间都在使用什么,而不是重载框架提供的许多概念,这些概念可能只是为了灵活性。

有什么建议吗? 感谢阅读

【问题讨论】:

    标签: spring spring-mvc servlets web.xml


    【解决方案1】:

    您想要使用基于 Java 的容器初始化的主要原因是当您想要注册 Spring 管理的 ServletFilterXxxListener 对象时。

    例如,当你想注册一个ServletContextListener,你指定

    <listener>
        com.your.listeners.MyListener
    </listener>
    

    在部署描述符中。容器采用完全限定的类名并使用反射来查找相应的Class 对象,并对其进行实例化以获取实例。换句话说,对象由容器唯一地管理。你不能轻易让 Spring 注入字段。

    另一方面,使用 ServletContainerInitializer 或相应的 Spring 类,您可以在 Spring 上下文中指定 ServletFilterListener bean(通过 XML 或 @Configuration 类)并直接通过ServletContext注册那些Spring管理的实例。


    请注意,仍有一些配置需要使用部署描述符。

    【讨论】:

    • 感谢您的解释。
    猜你喜欢
    • 1970-01-01
    • 2013-11-12
    • 2014-05-24
    • 1970-01-01
    • 2020-10-01
    • 2016-06-14
    • 2013-04-24
    • 2017-08-17
    • 1970-01-01
    相关资源
    最近更新 更多