Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在SpringBootXML文件中注册servlet?_Java_Xml_Spring_Servlets_Registration - Fatal编程技术网

Java 如何在SpringBootXML文件中注册servlet?

Java 如何在SpringBootXML文件中注册servlet?,java,xml,spring,servlets,registration,Java,Xml,Spring,Servlets,Registration,我为Spring启动应用程序编写了一个servlet。当我使用 contextHandler.addServlet(MyClass.class, "/v1/route"); 现在,我正在尝试将beans.xml文件中的servlet注册为bean。这个 <bean id="myId" class="com.abc.MyClass"/> 不包含路由。MyClass扩展了HttpServlet并重写了doGet方法 如何注册同时也是bean的servlet?这种方法对我很有效。它

我为Spring启动应用程序编写了一个servlet。当我使用

contextHandler.addServlet(MyClass.class, "/v1/route");
现在,我正在尝试将beans.xml文件中的servlet注册为bean。这个

<bean id="myId" class="com.abc.MyClass"/>

不包含路由。MyClass扩展了HttpServlet并重写了doGet方法


如何注册同时也是bean的servlet?

这种方法对我很有效。它是XML声明和完全编程注册的混合体

在beans.xml文件中,我指定了一个传递ServletContextHandler的构造函数参数,如下所示:

<bean id="myId" class="com.abc.MyClass">
    <constructor-arg ref="servletContextHandler"/>
</bean>
当然,这可能会干扰其他需求,比如构造函数可能需要其他参数,可能需要其他初始化。但在这里,我在XML中注册一个bean,并以编程方式注册servlet。可能servlet注册也可以在没有显式Java代码的情况下完成,我不知道怎么做


xerx593,我已经看过了那个页面,但是这些例子看起来不足以满足我的需要。无论如何,谢谢你。

这在很大程度上取决于你已有的/你的局限性,但应该给你一个概述和可用的例子(…关于注册servlet),当你希望servlet也是一个bean(这似乎不是互联网上的常见用例…但我听说过),我只是(务实地)通过注册/声明两者来尝试:注册您选择的servlet…和bean。。。在SpringXML中(/您选择的配置)
public MyClass(ServletContextHandler h) {
    h.addServlet(new ServletHolder(this), "/v1/route");
}