全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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的输出。

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


# springboot注入servlet  # spring  # boot  # servlet  # servlet3  # SpringBoot初始教程之Servlet、Filter、Listener配置详解  # SpringBoot中使用Filter和Interceptor的示例代码  # springboot使用filter获取自定义请求头的实现代码  # springboot中filter的用法详解  # springBoot的事件机制GenericApplicationListener用法解析  # 详解springboot整合Listener的两种方式  # SpringBoot中使用Servlet三大组件的方法(Servlet、Filter、Listene  # 第三方  # 要使  # 都有  # 第一个  # 就好  # 第二个  # 要用  # 可以直接  # 搞了  # 大家多多  # 这时候  # Override  # HttpServlet  # HttpServletResponse  # HttpServletRequest  # javax  # IOException  # http  # ServletException  # long 


相关文章: 网站制作公司排行榜,四大门户网站排名?  阿里云网站制作公司,阿里云快速搭建网站好用吗?  如何选择美橙互联多站合一建站方案?  定制建站策划方案_专业建站与网站建设方案一站式指南  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  教学网站制作软件,学习*后期制作的网站有哪些?  如何快速生成高效建站系统源代码?  如何快速生成ASP一键建站模板并优化安全性?  ,购物网站怎么盈利呢?  建站主机CVM配置优化、SEO策略与性能提升指南  制作销售网站教学视频,销售网站有哪些?  个人网站制作流程图片大全,个人网站如何注销?  如何通过虚拟主机快速完成网站搭建?  建站主机选购指南:核心配置优化与品牌推荐方案  Swift开发中switch语句值绑定模式  建站之星安装后如何自定义网站颜色与字体?  如何确保西部建站助手FTP传输的安全性?  Swift中switch语句区间和元组模式匹配  Android滚轮选择时间控件使用详解  建站之星如何防范黑客攻击与数据泄露?  高端企业智能建站程序:SEO优化与响应式模板定制开发  婚礼视频制作网站,学习*后期制作的网站有哪些?  建站之星与建站宝盒如何选择最佳方案?  相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?  如何用低价快速搭建高质量网站?  宝塔新建站点报错如何解决?  电商平台网站制作流程,电商网站如何制作?  公司网站设计制作厂家,怎么创建自己的一个网站?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  已有域名和空间如何搭建网站?  宁波免费建站如何选择可靠模板与平台?  建站之家VIP精选网站模板与SEO优化教程整合指南  制作农业网站的软件,比较好的农业网站推荐一下?  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  湖州网站制作公司有哪些,浙江中蓝新能源公司官网?  香港服务器WordPress建站指南:SEO优化与高效部署策略  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  如何在云指建站中生成FTP站点?  如何挑选优质建站一级代理提升网站排名?  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  如何注册花生壳免费域名并搭建个人网站?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  建站之星免费模板:自助建站系统与智能响应式一键生成  高端建站三要素:定制模板、企业官网与响应式设计优化  seo网站制作优化,网站SEO优化步骤有哪些?  建站主机如何安装配置?新手必看操作指南  如何在阿里云虚拟主机上快速搭建个人网站?  如何在阿里云购买域名并搭建网站?  简单实现Android验证码 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。