Spring MVC 已處理大多數請求,但第三方組件(如 HystrixMetricsStreamServlet)無法掃描註解,需程式化註冊。
public class TestServlet extends HttpServlet {
@Override protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("zhaojigang servlet");
}
}
@Configuration
public class ServletConfig {
@Bean
public TestServlet testServlet() { return new TestServlet(); }
@Bean
public ServletRegistrationBean testServletRegistration(TestServlet servlet) {
ServletRegistrationBean reg = new ServletRegistrationBean(servlet);
reg.setEnabled(true);
reg.addUrlMappings("/servlet/test");
return reg;
}
// 第二個 Servlet 同理...
}
啟動應用,訪問 https://localhost:8083/servlet/test,控制台輸出 zhaojigang servlet。
ServletRegistrationBean。@WebServlet 簡化;第三方 Servlet 必須用此方式。ServletRegistrationBean;1.x 用 ServletRegistrationBean 同名類(包不同)。