springboot注入servlet的方法

 更新时间:2017年05月08日 14:45:43   作者:赵计刚  
本篇文章主要介绍了springboot注入servlet的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

问:有了springMVC,为什么还要用servlet?有了servlet3的注解,为什么还要使用ServletRegistrationBean注入的方式?

使用场景:在有些场景下,比如我们要使用hystrix-dashboard,这时候就需要注入HystrixMetricsStreamServlet(第三方的servlet),该servlet是hystrix的组件。

一、代码

1、TestServlet(第一个servlet)

package com.xxx.secondboot.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class TestServlet extends HttpServlet {
  
  private static final long serialVersionUID = -4619665430596950563L;

  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    System.out.println("zhaojigang servlet");
  }

  @Override
  protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    this.doGet(req, resp);
  }
}

2、Testservlet2(第二个servlet)

package com.xxx.secondboot.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class TestServlet2 extends HttpServlet {

  private static final long serialVersionUID = 3788279972938793265L;

  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    System.out.println("zhaojigang servlet2");
  }

  @Override
  protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    this.doGet(req, resp);
  }
}

3、ServletConfig(servlet注入配置类)

package com.xxx.secondboot.servlet;

import org.springframework.boot.context.embedded.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class ServletConfig {
  
  @Bean
  public TestServlet testServlet(){
    return new TestServlet();
  }
  
  @Bean
  public ServletRegistrationBean testServletRegistrationBean(TestServlet testServlet){
    ServletRegistrationBean registration = new ServletRegistrationBean(testServlet);
    registration.setEnabled(true);
    registration.addUrlMappings("/servlet/test");
    return registration;
  }
  /********************************************/
  @Bean
  public TestServlet2 testServlet2(){
    return new TestServlet2();
  }
  
  @Bean
  public ServletRegistrationBean test2ServletRegistrationBean(TestServlet2 testServlet2){
    ServletRegistrationBean registration = new ServletRegistrationBean(testServlet2);
    registration.setEnabled(true);
    registration.addUrlMappings("/servlet/test2");
    return registration;
  }
  
}

说明:使用ServletRegistrationBean来注入servlet,对于每一个servlet都有一个ServletRegistrationBean来注入。

注意:如果只是自己要使用servlet,可以直接只用servlet3的注解来声明servlet就好,但是像HystrixMetricsStreamServlet这样的第三方servlet,就只能通过上边这样的方式来搞了。

 二、测试

启动服务,浏览器输入"http://localhost:8083/servlet/test","http://localhost:8083/servlet/test2",查看console的输出。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • SpringMVC+Shiro的基本使用及功能介绍

    SpringMVC+Shiro的基本使用及功能介绍

    本文给大家介绍SpringMVC+Shiro的基本使用,Apache Shiro是Java的一个安全框架,Shiro本身无法知道所持有令牌的用户是否合法,因为除了项目的设计人员恐怕谁都无法得知,本文只介绍最常见也最重要的一种实现方式数据库查询
    2022-04-04
  • 详解Java 信号量Semaphore

    详解Java 信号量Semaphore

    这篇文章主要介绍了Java 信号量Semaphore的相关资料,帮助大家更好的理解和学习Java并发,感兴趣的朋友可以了解下
    2020-09-09
  • java8 Stream API之reduce使用说明

    java8 Stream API之reduce使用说明

    这篇文章主要介绍了java8 Stream API之reduce使用说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 深入分析JAVA 建造者模式

    深入分析JAVA 建造者模式

    这篇文章主要介绍了JAVA 建造者模式的的相关资料,文中讲解非常详细,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06
  • java调用百度定位api服务获取地理位置示例

    java调用百度定位api服务获取地理位置示例

    java调用百度定位api服务获取地理位置示例,大家参考使用吧
    2013-12-12
  • Spring整合websocket整合应用示例(下)

    Spring整合websocket整合应用示例(下)

    这篇文章主要介绍了Spring整合websocket整合应用示例(下)的相关资料,需要的朋友可以参考下
    2016-04-04
  • Java8中List转Map的多种方式代码

    Java8中List转Map的多种方式代码

    这篇文章主要给大家介绍了关于Java8中List转Map的多种方式,在实际项目中我们经常会用到List转Map操作,本文介绍了多种方法的实现代码,需要的朋友可以参考下
    2023-08-08
  • Spring Boot开发Web应用详解

    Spring Boot开发Web应用详解

    这篇文章主要介绍了Spring Boot开发Web应用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • Java实现数据连接池Druid举例

    Java实现数据连接池Druid举例

    本文主要介绍了Java实现数据连接池Druid举例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • 18个Java8日期处理的实践(太有用了)

    18个Java8日期处理的实践(太有用了)

    这篇文章主要介绍了18个Java8日期处理的实践(太有用了),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01

最新评论