03.SpringBoot整合Servlet的两种方式


SpringBoot整合Servlet的两种方式:

1. 通过注解扫描完成Servlet组件注册

  • 新建Servlet类继承 HttpServlet
  • 重写超类 doGet 方法
  • 在该类使用注解 @WebServlet
@WebServlet(name="FirstServlet" ,urlPatterns="/first")
public class FirstServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("执行了");
    }
}
  • 编写启动类

  • 增加注解 @ServletComponentScan //在springboot启动时会扫描websevlet的路径,并将该类实例化

/**
   * SpringBoot 启动类
   * @SpringBootApplication 是springboot的启动类
   * 启动器存放的位置:启动器可以和controller位于同一个包下或者上一个包下。 不能同级的包
   */
  @SpringBootApplication
  @ServletComponentScan //在springboot启动时会扫描websevlet的路径,并实例化
  public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
  }

2.通过方法完成Servlet组件注册

  • 编写一个类同样继承HttpServlet

  • 重写doGet方法

  • 编写启动类

    1. 添加一个方法,返回值必须是ServletRegistrationBean的对象,该对象就是注册Servlet的对象。
    2. 在方法中, new SecondServlet()
    3. 通过 bean.addUrlMappings("/second") 完成urlPatterns的配置
    4. 返回该对象
    5. 在该方法中加入注解 @Bean

      /**

      • SpringBoot 启动类
      • @SpringBootApplication 是springboot的启动类
      • 启动器存放的位置:启动器可以和controller位于同一个包下或者上一个包下。 不能同级的包 */ @SpringBootApplication public class App2 { public static void main(String[] args) { SpringApplication.run(App2.class, args); } /**
        • 注册Servlet的方法 */ @Bean public ServletRegistrationBean getServletRegistrationBean(){ ServletRegistrationBean bean = new ServletRegistrationBean(new SecondServlet()); bean.addUrlMappings("/second"); return bean; } }


原文链接:https://www.cnblogs.com/net-safe/p/13528101.html