1、使用Servlet API

@ServletComponentScan(basePackages = “com.atguigu.admin”)
:指定原生Servlet组件都放在那里
@WebServlet(urlPatterns ="/my"):效果:直接响应,没有经过Spring的拦截器?
@WebFilter(urlPatterns={"/css/","/images/"})
@WebListener

@ServletComponentScan(basePackages = "com.atguigu.admin")
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)public class Boot05WebAdminApplication {public static void main(String[] args) {SpringApplication.run(Boot05WebAdminApplication.class, args);}}
@WebServlet(urlPatterns = "/my")
public class MyServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.getWriter().write("66666");}
}
@Slf4j
@WebFilter(urlPatterns = {"/css/*","/images/*"})
public class MyFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {log.info("init finished");}@Overridepublic void destroy() {log.info("destroy finished");}@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {log.info("myFilter work");filterChain.doFilter(servletRequest,servletResponse);}
}
@Slf4j
@WebListener
public class MyServletContextListener implements ServletContextListener {@Overridepublic void contextInitialized(ServletContextEvent sce) {log.info("MyServletContextListener init finished");}@Overridepublic void contextDestroyed(ServletContextEvent sce) {log.info("MyServletContextListener destory finished");}}

2、使用RegistrationBean

@Slf4j
//@WebFilter(urlPatterns = {"/css/*","/images/*"})
public class MyFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {log.info("init finished");}@Overridepublic void destroy() {log.info("destroy finished");}@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {log.info("myFilter work");filterChain.doFilter(servletRequest,servletResponse);}
}//=======================================================//@WebServlet(urlPatterns = "/my")
public class MyServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.getWriter().write("66666");}}//=================================================================@Slf4j
//@WebListener
public class MyServletContextListener implements ServletContextListener {@Overridepublic void contextInitialized(ServletContextEvent sce) {log.info("MyServletContextListener init finished");}@Overridepublic void contextDestroyed(ServletContextEvent sce) {log.info("MyServletContextListener destory finished");}}
@Configuration(proxyBeanMethods = true)
public class MyRegistConfig {@Beanpublic ServletRegistrationBean myServlet(){MyServlet myServlet = new MyServlet();return new ServletRegistrationBean(myServlet,"/my","/my02");}@Beanpublic FilterRegistrationBean myFilter(){MyFilter myFilter = new MyFilter();//      方式一:
//        return new FilterRegistrationBean(myFilter,myServlet());//方式二:FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(myFilter);filterRegistrationBean.setUrlPatterns(Arrays.asList("/my","/css/*"));return filterRegistrationBean;}@Beanpublic ServletListenerRegistrationBean myListener(){MyServletContextListener myServletContextListener = new MyServletContextListener();return new ServletListenerRegistrationBean(myServletContextListener);}}

注意:

@Configuration(proxyBeanMethods = true)

保证依赖的组件始终是单实例的

如果我们写成

@Configuration(proxyBeanMethods = false)

说明我们当前类,每次调用一次myServlet方法,就会创建一个新的MyServlet,有可能导致我们一调用下面的过滤器方法就会创建一个新的MyServlet,会导致我们容器中有很多冗余的其他对象!

return new FilterRegistrationBean(myFilter,myServlet());

[SpringBoot2]原生组件注入_原生注解与Spring方式注入相关推荐

  1. limit 后注入_聊一聊 SQLMAP 在进行 sql 注入时的整个流程

    本文作者:sher10ck(信安之路核心成员) 很多小伙伴在发现或者判断出注入的时候,大多数选择就是直接上 sqlmap,结果往往也不尽人意,于是就有想法来写写 sqlmap 从执行到判断注入,到底发 ...

  2. mysql 存储过程 sql注入_存储过程是否可以防止SQL注入?

    存储过程并不能神奇地阻止SQL注入,但是它们确实使防止注入变得容易得多.您所要做的只是类似以下内容(Postgres示例): CREATEORREPLACEFUNCTIONmy_func(INin_u ...

  3. mysql原生sql语句_原生SQL语句

    -- -sql语句的注意 : 1 以;作为结束符 2不区分大小写--01mysql 数据库的操作--链接数据库 mysql-uroot -pmysql--不显示密码 mysql-uroot -p my ...

  4. android 原生分享界面_原生 Android 用户终于能用上骚扰电话拦截了

    虽然对大部分国产手机用户而言,骚扰电话早已不再是一个令人头痛的问题.但如果你使用的是原生/类原生 Android 系统(例如 Google Pixel),骚扰电话拦截这件事就变得非常棘手了.所以和很多 ...

  5. java filter注入_如何在Java Filter 中注入 Service

    在项目中遇到一个问题,在 Filter中注入 Serivce失败,注入的service始终为null.如下所示: public class WeiXinFilter implementsFilter{ ...

  6. 万豪 数据泄露 sql注入_如何防止数据库泄漏和注入

    万豪 数据泄露 sql注入 by Cossack Labs Dev Stories 哥萨克实验室开发故事 如何防止数据库泄漏和注入 (How to prevent database leaks and ...

  7. mysql中的宽字符注入_深入理解Mysql宽字符注入

    之前记录过一篇 写的不够详细 概念 宽字节是相对于ascII这样单字节而言的:像GB2312.GBK.GB18030.BIG5.Shift_JIS等这些都是常说的宽字节,实际上只有两字节 GBK是一种 ...

  8. Springboot2Web原生组件注入

    官方文档 - Servlets, Filters, and listeners 使用原生的注解Servlet API @ServletComponentScan(basePackages = &quo ...

  9. Spring~用注解读取bean(属性注入、构造方法注入、set注入)

    文章目录 注解@Autowired. 属性注入 Setter注入 构造方法注入 三种注入的优缺点 注解@Resource. 1.属性注入 2.构造方法注入 @Resource与@Autowired区别 ...

最新文章

  1. java 视频切片_关于视频播放、视频切片、跨域访问视频
  2. 算法-----三数之和等于0
  3. 加强linux操作系统DNS服务安全
  4. Windows 8各个版本的功能详解与对比【中文详表】
  5. XAMPP——Apache不能启动解决方案
  6. app uniapp 获取位置_uniApp 地图使用
  7. 如何排查 StackOverflow 异常
  8. java 监听桌面鼠标事件,鼠标事件的监听和使用
  9. 探索篇 | 新奇测试策略剖析,大家都觉得多此一举(二)
  10. [转载]程序员如何写出杀手级简历
  11. python pil png合成gif储存时变黑_教你用Python花式搞定二维码
  12. mac安装gcc10
  13. 2020级C语言大作业 - 鸭王争霸赛
  14. update语句更新多条记录, 标记下
  15. Atom 编辑器安装 linter-eslint 插件,并配置使其支持 vue 文件中的 js 格式校验
  16. Apache Camel系列(3)----Redis组件
  17. 如何在ogre游戏界面添加自己的信息,比如显示某变量的值
  18. caffe上手:如何导出caffemodel参数
  19. slickedit自定义代码片段
  20. 鸿蒙炼体 等级划分,洪荒的等级划分

热门文章

  1. Win11 恢复 Win10经典右键菜单 亲测有效
  2. 【ArcGIS微课1000例】0001:添加XY数据(Add XY data)生成shp
  3. ArcGIS实验教程——实验三十五:ArcGIS Model Builder与空间建模原理、案例详解
  4. 【GIS风暴】GIS拓扑关系原理详解
  5. Android之升级OkHttp编译提示错误如下Using ‘body(): ResponseBody?’ is an error. moved to val
  6. LeetCode之Construct the Rectangle
  7. Android之学习笔记 Contacts (一)ContentResolver query 参数详解
  8. java servlet https_javaweb项目对https的配置01
  9. 一个娃娃竟然拍出50万......
  10. 主机挂载存储_备战CKA每日一题——第3天 | 对接CSI存储知识