您的位置:首页 > 编程语言 > Java开发

spring boot学习笔记之与servlet、Filter、Listener集成

2019-06-28 07:58 357 查看

方法一:直接在spring boot入口类中注册Bean

[code]@Bean
public MyServlet myServlet() {//注册Servlet
return new MyServlet();
}
@Bean
public MyFilter myFilter() {//注册Filter
return new MyFilter();
}
@Bean
public MyListener myListener() {//注册Listener
return new MyListener();
}

方法二:通过在spring boot入口类中RegistrationBean

[code]@Bean
public ServletRegistrationBean<MyServlet> servletRegistrationBean() {
return new ServletRegistrationBean<MyServlet>(new MyServlet(),"/xx/*");
}

@Bean
public FilterRegistrationBean<MyFilter1> filterRegistrationBean1() {
return new FilterRegistrationBean<MyFilter1>(new MyFilter1());
}

@Bean
public ServletListenerRegistrationBean<MyListener> servletListenerRegistrationBean() {
return new ServletListenerRegistrationBean<MyListener>(new MyListener());
}

方法三:方法三:spring boot入口类实现ServletContextInitializer接口,并重写onStartup方法

[code]package com.wisely;

import java.util.EnumSet;

import javax.servlet.DispatcherType;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletContextInitializer;

import com.wisely.filter.MyFilter1;
import com.wisely.filter.MyFilter2;
import com.wisely.filter.MyFilter3;
import com.wisely.listener.MyListener;
import com.wisely.servlet.MyServlet;

@SpringBootApplication
public class Ch72Application implements ServletContextInitializer{

public static void main(String[] args) {
SpringApplication.run(Ch72Application.class, args);
}

//方法三:spring boot入口类实现ServletContextInitializer接口,并重写onStartup方法

@Override
public void onStartup(ServletContext servletContext) throws ServletException {

servletContext.addServlet("myServlet1", MyServlet.class).addMapping("/myServlet1");

servletContext.addFilter("myFilter1", MyFilter1.class)
.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/*");
servletContext.addFilter("myFilter2", MyFilter2.class)
.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/*");
servletContext.addFilter("myFilter3", MyFilter3.class)
.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/*");

servletContext.addListener(MyListener.class);
}
}

方法四:spring boot入口类使用@ServletComponentScan注解

前提是:

Servlet类使用注解配置:@WebServlet("/Myservlet")

Filter类使用注解配置:

@Order(1)
@WebFilter(filterName = "testFilter1", urlPatterns = "/*")

Listener类使用注解配置:@WebListener

[code]package com.wisely;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;

@ServletComponentScan
@SpringBootApplication
public class Ch72Application{

public static void main(String[] args) {
SpringApplication.run(Ch72Application.class, args);
}

//方法四:spring boot入口类使用@ServletComponentScan注解
}

访问 http://localhost:8888/Myservlet

运行结果:

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: