当前位置: 首页 > news >正文

黑客网站免费盗号/宁波seo整站优化

黑客网站免费盗号,宁波seo整站优化,长春市人力资源和社会保障局,广元做网站站排名文章目录前言DefaultListableBeanFactoryDefaultListableBeanFactory 中的一些常量AbstractAutowireCapableBeanFactoryAbstractAutowireCapableBeanFactory 全局变量介绍Spring 关于循环依赖的两个常量前言 体能状态先于精神状态,习惯先于决心,聚焦先于…

文章目录

      • 前言
      • DefaultListableBeanFactory
        • DefaultListableBeanFactory 中的一些常量
      • AbstractAutowireCapableBeanFactory
        • AbstractAutowireCapableBeanFactory 全局变量介绍
        • Spring 关于循环依赖的两个常量

前言

体能状态先于精神状态,习惯先于决心,聚焦先于喜好。

DefaultListableBeanFactory

org.springframework.beans.factory.support.DefaultListableBeanFactory
DefaultListableBeanFactory 是一个非常重要的 BeanFactory,是Spring 中的一个核心类。
DefaultListableBeanFactory 是Spring中默认的ListableBeanFactory和BeanDefinitionRegistry的实现类,已经包含了比较全面的功能,可以作为单例工厂直接使用,也可以将其作为父类进行扩展。
典型的应用方法是,在调用相关的SpringBean之前,通过Bean定义文件对Bean进行注册。你不用担心这个前置操作会消耗太多性能,因为通过操作本地的一个包含了Bean定义信息的不可变对象来注册Bean还是很快的。

在这里插入图片描述

DefaultListableBeanFactory 中的一些常量

其中有几个变量我们单独说下:
默认情况后,允许重复加载同名bean,后面的覆盖前面的。
默认情况下,允许立即加载遇到的bean,即使配置了懒加载。

private static Class<?> javaUtilOptionalClass = null;private static Class<?> javaxInjectProviderClass = null;static {try {javaUtilOptionalClass =ClassUtils.forName("java.util.Optional", DefaultListableBeanFactory.class.getClassLoader());}catch (ClassNotFoundException ex) {// Java 8 not available - Optional references simply not supported then.}try {javaxInjectProviderClass =ClassUtils.forName("javax.inject.Provider", DefaultListableBeanFactory.class.getClassLoader());}catch (ClassNotFoundException ex) {// JSR-330 API not available - Provider interface simply not supported then.}}/** Map:key:序列化ID,value:DefaultListableBeanFactory实例对象*/private static final Map<String, Reference<DefaultListableBeanFactory>> serializableFactories =new ConcurrentHashMap<String, Reference<DefaultListableBeanFactory>>(8);/** 该 工厂 的可选id,用于序列化 */private String serializationId;/** 是否允许同名 bean 定义的从新注册,即同名bean定义,后面的注册能否覆盖之前的,默认是可以 */private boolean allowBeanDefinitionOverriding = true;/** 是否允许 eager class loading(立即加载) 包括对于 lazy-init beans,默认是允许 */private boolean allowEagerClassLoading = true;/** 可选的用于依赖集合和数组的顺序比较器 */private Comparator<Object> dependencyComparator;/**用于检测 Bean 是否有 自动注入请求 */private AutowireCandidateResolver autowireCandidateResolver = new SimpleAutowireCandidateResolver();/** 保存 依赖类型 和 依赖的对象 的map */private final Map<Class<?>, Object> resolvableDependencies = new ConcurrentHashMap<Class<?>, Object>(16);/** 保存“bean的定义”的对象的Map,key:bean的名字, value:定义bean的相关对象 */private final Map<String, BeanDefinition> beanDefinitionMap = new ConcurrentHashMap<String, BeanDefinition>(256);/**map ,保存key:依赖类型,value:单例和非单例 bean的名字*/private final Map<Class<?>, String[]> allBeanNamesByType = new ConcurrentHashMap<Class<?>, String[]>(64);/** map,key:依赖类型,value:单例bean的名字*/private final Map<Class<?>, String[]> singletonBeanNamesByType = new ConcurrentHashMap<Class<?>, String[]>(64);/** list:bean定义的名字,按照注册顺序保存  */private volatile List<String> beanDefinitionNames = new ArrayList<String>(256);/** list:手工注册单例bean的名字,按照注册顺序 */private volatile Set<String> manualSingletonNames = new LinkedHashSet<String>(16);/** 为了冻结配置 提供的 bean名字的缓存数组 */private volatile String[] frozenBeanDefinitionNames;/** 是否允许bean定义的元数据被缓存,以用于所有的bean,默认是否 */private volatile boolean configurationFrozen = false;

AbstractAutowireCapableBeanFactory

org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory 是 DefaultListableBeanFactory 的父类。

有几个比较重要的变量:
默认允许循环依赖。
默认的实例化策略为 cglib动态代理,即cglib为代理类生成子类的方式对方法进行注入。
默认情况下,如果循环依赖失败,不允许注入原始的bean——比如这个bean经过AOP包装。
有些类比如String不会被检测和注入依赖。
有些接口也不会被检测和注入依赖, 默认只有 BeanFactory interface,但是在 DefaultListableBeanFactory 中其实增加了 BeanNameAware、BeanFactoryAware和BeanClassLoaderAware 三个接口要被忽略
未完成实例化的bean会被先保存在 factoryBeanInstanceCache 这个缓存map中。

AbstractAutowireCapableBeanFactory 全局变量介绍

这里我们看下 AbstractAutowireCapableBeanFactory 中的全局变量

/** 创建 bean实例的策略默认使用 Cglib 动态代理,即以动态生成子类的方式对方法进行注入*/private InstantiationStrategy instantiationStrategy = new CglibSubclassingInstantiationStrategy();/** 方法参数名称的解析策略 */private ParameterNameDiscoverer parameterNameDiscoverer = new DefaultParameterNameDiscoverer();/** 是否允许循环依赖的 beans,默认是允许的 */private boolean allowCircularReferences = true;/*** 是否在循环依赖的时候尝试将 bean 的原始对象注入到参数中,即使这个bean是被包装的(比如AOP),默认是否*/private boolean allowRawInjectionDespiteWrapping = false;/*** 设置需要忽略依赖检测和注入的类型,比如 String */private final Set<Class<?>> ignoredDependencyTypes = new HashSet<Class<?>>();/*** 设置需要忽略依赖和注入的接口,默认只有 BeanFactory interface,但是在 DefaultListableBeanFactory 中其实增加了 BeanNameAware、BeanFactoryAware和BeanClassLoaderAware 三个接口要被忽略*/private final Set<Class<?>> ignoredDependencyInterfaces = new HashSet<Class<?>>();/** 没有完成实例化的 FactoryBean 缓存map,key:FactoryBean 名称 ,value:BeanWrapper */private final Map<String, BeanWrapper> factoryBeanInstanceCache =new ConcurrentHashMap<String, BeanWrapper>(16);/** 过滤了的属性描述器 缓存map, key:bean Class,value:PropertyDescriptor 数据,最多256个 */private final ConcurrentMap<Class<?>, PropertyDescriptor[]> filteredPropertyDescriptorsCache =new ConcurrentHashMap<Class<?>, PropertyDescriptor[]>(256);

Spring 关于循环依赖的两个常量

AbstractAutowireCapableBeanFactory 中关于 循环依赖的变量 allowCircularReferences 和 allowRawInjectionDespiteWrapping 。
实时上,Spring 仅允许单例模式下的允许依赖,并且在循环依赖无法完成注入时,默认不采取原始类型对象的注入。

	/** 是否允许循环依赖的 beans,默认是允许的 */private boolean allowCircularReferences = true;/*** 是否在循环依赖的时候尝试将 bean 的原始对象注入到参数中,即使这个bean是被包装的(比如AOP),默认是否*/private boolean allowRawInjectionDespiteWrapping = false;
http://www.lbrq.cn/news/1395451.html

相关文章:

  • 学做莱网站/今天中国新闻
  • jsp网站建设项目实战源代码/百度百科创建
  • 微网站开发视频/最新国际新闻事件今天
  • 怎么样做贷款网站/下载百度语音导航地图安装
  • 鄞州区住房和城乡建设委员网站/网络营销师是干什么的
  • 威海外贸网站建设电话/如何检测网站是否安全
  • 网站关键词数量多少好/优秀网站设计
  • mvc做网站前台代码/成都营销推广公司
  • 离石做网站的公司/2345网址导航 中国最
  • wordpress调用图片路径/北京seo优化费用
  • 腾讯 网站建设/公司的网站制作
  • 保定电子商务网站建设/网络营销做得好的品牌
  • 怎么把网站做的靠前/天津放心站内优化seo
  • php做自己的网站/网站百度不收录的原因
  • 化工网站模板下载/如何自己开发软件app
  • 网站域名所有人/南宁seo计费管理
  • 企业单页网站模板/网络营销的概念
  • 黑帽seo易下拉霸屏/win10优化大师好用吗
  • 网站在建设中 英语/深圳百度推广开户
  • 无锡网站建设技术外包/电商营销策划方案
  • 万全网站建设/cilimao磁力猫最新版地址
  • 网站怎做百度代码统计/推广运营公司哪家好
  • 东莞东城做网站公司/打开百度一下
  • 做网站一万/上海培训机构
  • 广州澄网站建设公司/石家庄网站优化
  • 网站建设国内外研究现状模板/seo二级目录
  • 保定网站建设冀icp/镇江网站制作公司
  • 网络系统管理与维护形考任务1/seo的关键词无需
  • 江门整站优化/网络营销案例分析报告
  • wordpress 404自定义/商品关键词怎么优化
  • 机器学习--数据清洗—(续篇)
  • linux内核源码下载
  • CAT1+mqtt
  • [特殊字符] 小豆包 API 聚合平台:让 AI 接入更简单、更高效
  • 为了更强大的空间智能,如何将2D图像转换成完整、具有真实尺度和外观的3D场景?
  • STM32学习笔记15-SPI通信软件控制