转载

SpringBoot 过滤器 拦截器 监听器的启动类的区别及其原理

学完了这三个之后,好像觉得有一些关联,但是又不清楚为什么,在boot项目下,由于配置文件更少了,所以更要深刻的理解这些内容。

--本节只介绍区别和启动类,至于实现的功能,不在这里做具体的介绍了,网上关于具体的使用例子很多,大家可以自己百度一下。

过滤器

SpringBoot 过滤器 拦截器 监听器的启动类的区别及其原理

监听器

SpringBoot 过滤器 拦截器 监听器的启动类的区别及其原理

--过滤器和监听器是java ee的范畴,在boot项目下,不会认识javax.servlet.下的类,在ssm项目里,这些内容要配置在web.xml文件里。但是boot项目没有web.xml文件,可以在启动类上加ServletComponentScan注解。

pic as below

SpringBoot 过滤器 拦截器 监听器的启动类的区别及其原理

--如果没有使用ServletComponentScan注解,那么boot项目里的servlet和filter和listener都无效。

拦截器

SpringBoot 过滤器 拦截器 监听器的启动类的区别及其原理

拦截器HandlerInterceptor是spring的框架,所以启动类不用加任何注解

org.springframework.web.servlet.HandlerInterceptor

因为是spring的类,所以boot会自动认识这个类

注意ssm项目时,拦截器的配置文件要写在springmvc的配置xml里,同样,在boot项目里,没有其对应的xml文件,但是boot会自动地通过WebMvcConfigurerAdapter配置拦截器

pic as below

SpringBoot 过滤器 拦截器 监听器的启动类的区别及其原理

SpringBoot 过滤器 拦截器 监听器的启动类的区别及其原理

这个类也是spring下的类,同时这个类有SpringBootConfiguration这个注解,boot读取后会自动生成其对应的xml配置文件。

PS:这里也用到了@Component,@Bean,@Configuration注解

面试一般都会问道这三个的其中一个

原文  https://segmentfault.com/a/1190000020764019
正文到此结束
Loading...