首页 > 其他分享 >核心子方法4: postProcessBeanFactory(beanFactory)方法详解

核心子方法4: postProcessBeanFactory(beanFactory)方法详解

时间:2024-03-01 09:55:56浏览次数:12  
标签:web beanFactory postProcessBeanFactory ServletContextAwareProcessor 详解 处理器 servl

先总结: 子类覆盖方法做额外的处理,此处我们自己一般不做任何扩展工作,但是可以查看web中的代码,是有具体实现的

  AnnotationConfigWebApplicationContext -> AbstractRefreshableWebApplicationContext的实现:

    1.设置ServletContextAwareProcessor后处理器, 并设置忽略ServletContextAware和ServletConfigAware, 在ServletContextAwareProcessor后处理器中进行处理

    beanFactory.addBeanPostProcessor(new ServletContextAwareProcessor(this.servletContext, this.servletConfig));

    beanFactory.ignoreDependencyInterface(ServletContextAware.class);

    beanFactory.ignoreDependencyInterface(ServletConfigAware.class);

      --> ServletContextAwareProcessor后处理器的核心代码:

        

 

  2.注册特定于web的作用域(“请求”、“会话”、“globalSession”、“应用程序”)("request", "session", "globalSession", "application")

    WebApplicationContextUtils.registerWebApplicationScopes(beanFactory, this.servletContext);

  3.向给定的BeanFactory注册特定于web的环境的bean(“contextParameters”、“contextAttributes”),如: WebApplicationContext中所使用的

    WebApplicationContextUtils.registerEnvironmentBeans(beanFactory, this.servletContext, this.servletConfig);

    

标签:web,beanFactory,postProcessBeanFactory,ServletContextAwareProcessor,详解,处理器,servl
From: https://www.cnblogs.com/superpiter/p/18046302

相关文章

  • FullGC详解
    前言:背景:一、什么是JVM的GC?JVM(JavaVirtualMachine)。JVM是Java程序的虚拟机,是一种实现Java语言的解释器。 它提供了一种独立于操作系统的运行环境,使得Java程序在任何支持JVM的计算机上都可以运行。JVM负责加载、验证、解释、执行和垃圾回收Java字节代码,并为......
  • 详解海量日志传输框架 Flume
    什么是Flume本次我们来聊一聊Flume,它是Cloudera提供的一个高可用、高可靠、分布式的日志收集框架,用于海量日志的采集、聚合以及传输。Flume在生产上使用最多的场景就是,实时读取服务器本地磁盘的数据,然后将数据写入到HDFS。Flume基础架构再来看看Flume的基础架构:Ag......
  • Java HashMap 详解
    HashMapHashMap继承自AbstractMap,实现了Map接口,基于哈希表实现,元素以键值对的方式存储,允许键和值为null。因为key不允许重复,因此只能有一个键为null。HashMap不能保证放入元素的顺序,它是无序的,和放入的顺序并不相同。HashMap是线程不安全的。1.哈希表哈希表基于数......
  • 机器学习策略篇:详解满足和优化指标(Satisficing and optimizing metrics)
    满足和优化指标要把顾及到的所有事情组合成单实数评估指标有时并不容易,在那些情况里,发现有时候设立满足和优化指标是很重要的,让我告诉是什么意思吧。假设已经决定很看重猫分类器的分类准确度,这可以是\(F_1\)分数或者用其他衡量准确度的指标。但除了准确度之外,还需要考虑运行时......
  • Java访问权限之public、protected、private详解——【包和访问控制】【访问权限控制】
    @目录包和访问控制包声明和导入访问权限控制源码:Giteehttps://gitee.com/drip123456/java-seGIthubhttps://github.com/Drip123456/JavaSE专栏:JavaSE笔记专栏包和访问控制通过前面的学习,我们知道该如何创建和使用类。包声明和导入包其实就是用来区分类位置的东西,也可......
  • Rust的Cow类型有什么用?详解Cow及其用途
    Rust的智能指针有哪些?大多数人都能马上答出Box<T>、Rc<T>和Arc<T>、Ref<T>和在异步编程中很常见的Pin<P>等等。不过,有一个可能经常被大多数人遗忘的类型,它功能强大,利用好了可以节省很多复制开销;它就是这篇文章的主角:Cow<B>。什么是COW(Copy-On-Write)?在开始之前,有必要先介绍一下CO......
  • CentOS7 安装FastDFS配置详解
    一、介绍FastDFS是一个开源的高性能分布式文件系统。它的主要功能包括:文件存储,文件同步和文件访问(文件上传和文件下载),它可以解决高容量和负载平衡问题。FastDFS应该满足基于照片共享站点和视频共享站点等文件的网站的要求。FastDFS具有两个角色:tracker和storage。tracker负责调......
  • Python面向对象,类属性,实例属性,类方法,实例方法,静态方法的区别及用法详解
    一.前言在Python的面向对象编程中,类属性和实例属性是两个不同的概念,它们在作用域和使用方式上有所区别。在Python中的面向对象编程中有三种方法:实例方法、类方法和静态方法,它们之间的差异主要体现在参数传递和调用方式上。二.面向对象-类属性和实例属性1.区别在Pyth......
  • 详解SSL证书系列(3)如何选择SSL证书
    我们知道了在网站部署SSL证书后,不管是对网站本身还是对网站的用户都能够带来许多好处。那么随着HTTPS的普及,市面上也出现了各种不同的SSL证书。并且由于SSL证书的多样性,很多人对于如何选择SSL证书有着很大的困惑。因此,本篇文章将从证书品牌,证书类型和域名类型三个方面提......
  • Lua调试函数 debug.getinfo() namewhat详解
    Lua调试的时候会用到debug.getinfo()函数,what的值文档给了解释:"Lua":Luafunction"C":Cfunction"main":mainpartofachunk(通过load函数等执行的语句)关于namewhat的值到底表示什么,官方文档只是简单列举(不全)。列举一些常见情况localgetinfo=debug.getinfol......