spring boot servlet 注入

spring boot 注入servlet的方法是借助ServletRegistrationBean这个类

例子如下:

先建一个servlet

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
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 = 1L;

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("你的特殊的servlet。。。哦....");
        response.getWriter().append("Served at: ").append(request.getContextPath());
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

}

然后注入即可:

    @Bean
    public TestServlet servlet(){
        return new TestServlet();
    }

    @Bean
    public ServletRegistrationBean testServlet(TestServlet servlet) {
        ServletRegistrationBean registration = new ServletRegistrationBean(servlet);
        registration.setEnabled(true);
        registration.addUrlMappings("/servlet/test");
        return registration;
    }

最后访问的接口地址即可看见效果了

这种运用场景是当你的项目引用第三方插件的时候注入servlet的时候产生,或者你不用springmvc。

时间: 2024-12-20 22:24:28

spring boot servlet 注入的相关文章

Spring Boot Servlet 过滤 监听

Web开发使用 Controller 基本上可以完成大部分需求,但是我们还可能会用到 Servlet.Filter.Listener.Interceptor 等等. 当使用spring-Boot时,嵌入式Servlet容器通过扫描注解的方式注册Servlet.Filter和Servlet规范的所有监听器(如HttpSessionListener监听器). Spring boot 的主 Servlet 为 DispatcherServlet,其默认的url-pattern为"/".也许我

Spring Boot自动注入原理

启用自动注入 使用注解@EnableAutoConfiguration开启自动注入功能. @EnableAutoConfiguration @AutoConfigurationPackage @Import(AutoConfigurationImportSelector.class) public @interface EnableAutoConfiguration { // ignore... } @AutoConfigurationPackage @Import(AutoConfigurat

spring boot 动态注入bean

方法一 SpringContextUtil public class SpringContextUtil { private static ApplicationContext applicationContext; //获取上下文 public static ApplicationContext getApplicationContext() { return applicationContext; } //设置上下文 public static void setApplicationCont

Spring Boot 2 实战:如何自定义 Servlet Filter

1.前言 有些时候我们需要在 Spring Boot Servlet Web 应用中声明一些自定义的 Servlet Filter 来处理一些逻辑.比如简单的权限系统.请求头过滤.防止 XSS 攻击等.本篇将讲解如何在 Spring Boot 应用中声明自定义 Servlet Filter 以及定义它们各自的作用域和顺序. 2. 自定义 Filter 可能有人说声明 Servlet Filter 不就是实现 Filter 接口嘛,没有什么好讲的!是的这个没错,但是很多时候我们并不想我们声明的 F

Spring Boot 实战:如何自定义 Servlet Filter

1.前言 有些时候我们需要在 Spring Boot Servlet Web 应用中声明一些自定义的 Servlet Filter来处理一些逻辑.比如简单的权限系统.请求头过滤.防止 XSS 攻击等.本篇将讲解如何在 Spring Boot 应用中声明自定义 Servlet Filter 以及定义它们各自的作用域和顺序. 2. 自定义 Filter 可能有人说声明 Servlet Filter 不就是实现 Filter 接口嘛,没有什么好讲的!是的这个没错,但是很多时候我们并不想我们声明的 Fi

Spring Boot + spring-data-redis

Redis Redis是缓存, 消息队列, 多种类型的key-value存储服务. Spring Boot Spring Boot为Lettcue和Jedis客户端提供自动注入配置, 并且通过spring-data-redis提供抽象接口 配置连接Redis服务和接口调用 1. 加入依赖 在 pom.xml 的依赖集合中加入 org.springframework.boot:spring-boot-starter-data-reids 依赖, 如下配置 <dependencies> <d

spring boot 启动报错:Cannot determine embedded database driver class for database type NONE

错误原因:spring boot默认会加载org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration类,DataSourceAutoConfiguration类使用了@Configuration注解向spring注入了dataSource bean.因为工程中没有关于dataSource相关的配置信息,当spring创建dataSource bean因缺少相关的信息就会报错. 解决办法:第一种:在Applicat

Spring Boot使用Servlet、Filter或Listener的方式

根据官方文档说明,有两种方式可以在你的Spring Boot应用中使用Servlet.Filter或Listener. 其一:将Servlet.Filter或Listener注册成Spring Bean. 注意: 由于这三者与容器有关,它们不会被延迟初始化!所以,一般情况下不能注入其他Spring Bean -- 但不是说不能获取,你完全可以使用某些手段,在调用之前再注入! Servlet.Filter可以使用ServletRegistrationBean.FilterRegistrationB

Spring Boot 学习系列(08)—自定义servlet、filter及listener

此文已由作者易国强授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 传统的filter及listener配置 在传统的Java web项目中,servlet.filter和listener的配置很简单,直接在web.xml中按顺序配置好即可,程序启动时,就会按照你配置的顺序依次加载(当然,web.xml中各配置信息总的加载顺序是context-param -> listener -> filter -> servlet),项目搭建完成后,估计一般新来的开发同学没啥