码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-09-22 20:08:00      阅读:313      评论:0      收藏:0      [点我收藏+]

标签:forward   rtu   gis   --   boot   lock   listener   应该   一个   

根据官方文档说明,有两种方式可以在你的Spring Boot应用中使用Servlet、Filter或Listener。

其一:将Servlet、Filter或Listener注册成Spring Bean。

注意:

由于这三者与容器有关,它们不会被延迟初始化!所以,一般情况下不能注入其他Spring Bean -- 但不是说不能获取,你完全可以使用某些手段,在调用之前再注入!

Servlet、Filter可以使用ServletRegistrationBean、FilterRegistrationBean来设置初始化参数和映射路径。

默认,如果不指定某个filter的dispatcherType的话,会匹配FORWARD、INCLUDE和REQUEST。如果启用了async,那还会匹配ASYNC。

如果只想使用Bean,而不想在容器中安装它们的话,registration.setEnabled(false) 即可。

其二:使用类路径扫描,具体来说就是在@Configuration class 上使用@ServletComponentScan。 

注意:

需要配合@WebServlet、@WebFilter或@WebListener使用;

默认扫描当前配置文件所在包及子包。

 

 

ps:

如果是Spring MVC项目,且是Java config的,那可以在选择上面的第一种方式;

或者在WebApplicationInitializer实现类中设置Filter - 应该是有一个添加多个Filter的方法,但只能用于dispatcherServlet!

或者,还可以在WebApplicationInitializer实现类的onStartup()方法中获取ServletContext,并注册自己的Servlet、Filter或Listener。

 

还需要补充一点,这是Servlet 3.0+才支持的功能。

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

标签:forward   rtu   gis   --   boot   lock   listener   应该   一个   

原文地址:http://www.cnblogs.com/larryzeal/p/7576875.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!