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

如何做适合手机访问的网站seo快速排名软件平台

如何做适合手机访问的网站,seo快速排名软件平台,php做网站要多久,甘肃省第八建设集团公司网站目录 Spring 扩展点 :PostProcess介绍PostProcess大纲文字明细使用方法示例Autowired 功能实现Resource 功能实现 后记 Spring 扩展点 :PostProcess 介绍 Spring 核心做的事情其实很简单就是:控制反转和依赖注入 也就是把 Class 解析为 Bea…

目录

  • Spring 扩展点 :PostProcess
    • 介绍
    • PostProcess
      • 大纲
      • 文字明细
      • 使用方法
      • 示例
        • @Autowired 功能实现
        • @Resource 功能实现
    • 后记

Spring 扩展点 :PostProcess

介绍

Spring 核心做的事情其实很简单就是:控制反转和依赖注入
也就是把 Class 解析为 BeanDefinition
然后把 BeanDefinition 创建为 Bean
在这个过程中 Spring 提供了很多扩展点其中一个就是各种PostProcess
这篇文章就简单的分析一下各种PostProcess

PostProcess

大纲

这里整理了一张汇总的大纲图:
在这里插入图片描述
青色的是:创建BeanDefinition
红色的是:创建Bean

文字明细

1.BeanDefinitionRegistryPostProcessor
#postProcessBeanDefinitionRegistry
添加beanDefinition到上下文

2.BeanFactoryPostProcessor
#postProcessBeanFactory
处理beanFactory的属性或者使用beanFactory

3.InstantiationAwareBeanPostProcessor
#postProcessBeforeInstantiation
实例化前给一个根据Class对象创建实例的机会

3.1.BeanPostProcessor
#postProcessAfterInitialization
3执行了才会执行这个
初始化后调用,返回原始实例的包装实例

4.SmartInstantiationAwareBeanPostProcessor
#determineCandidateConstructors
实例化阶段:确定实例化使用的构造函数

5.MergedBeanDefinitionPostProcessor
#postProcessMergedBeanDefinition
实例化后、属性赋值前:对Bean定义进行处理
可获取Bean定义的内容 如注解内容等

6.InstantiationAwareBeanPostProcessor
#postProcessAfterInstantiation
属性赋值前:自定义属性注入实现
任何一个返回false就不在进行默认的属性赋值

7.InstantiationAwareBeanPostProcessor
#postProcessProperties
属性赋值前:对属性进行处理
可以解析出用于注入的属性供后续统一设置
或者直接对实例的属性进行设置

8.BeanPostProcessor
#postProcessBeforeInitialization
属性赋值后、初始化前:对实例进行处理
如:设置系统属性

9.BeanPostProcessor
#postProcessAfterInitialization
初始化后调用,返回原始实例的包装实例

10.DestructionAwareBeanPostProcessor
#postProcessBeforeDestruction
销毁前作用于Bean实例
如:执行@PreDestroy的方法

使用方法

首先大家先看上面的大纲和明细,掌握各种PostProcess的大致作用
然后分析一个 PostProcess 实现就可以先看一下其实现的接口
把接口所对应的方法都列出来排序
就大致知道功能是怎么样实现的

示例

@Autowired 功能实现

我们可以用上面的方法来试着分析下 @Autowired 功能实现类 : AutowiredAnnotationBeanPostProcessor

我们先来看下其实现的接口
在这里插入图片描述
根据上边的明细和顺序列出

4.SmartInstantiationAwareBeanPostProcessor
#determineCandidateConstructors
实例化阶段:确定实例化使用的构造函数

实际的作用:指定带有@Autowired的构造器作为实例化的构造器

5.MergedBeanDefinitionPostProcessor
#postProcessMergedBeanDefinition
实例化后、属性赋值前:对Bean定义进行处理
可获取Bean定义的内容 如注解内容等

实际的作用:
解析Bean带有@Autowired的字段和方法
属性名、属性类型(AutowiredFieldElement)
方法名、方法参数类型(AutowiredMethodElement)
并存入缓存 injectionMetadataCache

7.InstantiationAwareBeanPostProcessor
#postProcessProperties
属性赋值前:对属性进行处理
可以解析出用于注入的属性供后续统一设置
或者直接对实例的属性进行设置

实际的作用:
获取缓存 injectionMetadataCache
遍历后反射注入

@Resource 功能实现

我们可以用上面的方法再来试着分析下 @Resource 功能实现类 : CommonAnnotationBeanPostProcessor

看一下其实现的接口
在这里插入图片描述

根据上边的明细和顺序列出

5.MergedBeanDefinitionPostProcessor
#postProcessMergedBeanDefinition
实例化后、属性赋值前:对Bean定义进行处理
可获取Bean定义的内容 如注解内容等

实际作用是:
解析Bean带有@Resource的字段和方法
属性名、属性类型(ResourceElement)
方法名、方法参数类型(ResourceElement)
并存入缓存 injectionMetadataCache

7.InstantiationAwareBeanPostProcessor
#postProcessProperties
属性赋值前:对属性进行处理
可以解析出用于注入的属性供后续统一设置
或者直接对实例的属性进行设置

实际作用是:获取缓存 injectionMetadataCache 遍历后反射注入

10.DestructionAwareBeanPostProcessor
#postProcessBeforeDestruction
销毁前作用于Bean实例
如:执行@PreDestroy方法

实际作用是:Bean销毁时执行@PreDestroy方法

后记

希望大家之后遇到相关的问题可以试着用这个方法来分析一下
有其他心得也欢迎大家多多交流

另外有一个上面看到的功能就是 InitDestroyAnnotationBeanPostProcessor
这个类大家可以试着分析下
可以把分析结果写在评论里一起学习

http://www.ds6.com.cn/news/22219.html

相关文章:

  • 本地电脑做视频网站 外网连接焊工培训内容
  • 冠县哪里有做网站的google搜索排名优化
  • 怎么弄免费的php空间做网站站长之家seo查询
  • 工信部网站备案进度查询一个新手怎么做电商
  • 网站建设验收标准seo引流什么意思
  • 网站建设业务员怎么做百度贴吧网页版入口
  • 生产做网站表带的制造厂家软件排名工具
  • 如何更改公司网站内容一般网站推广要多少钱
  • 域名空间做网站视频剪辑培训班学费一般多少
  • 青岛做网站公司有哪些廊坊优化技巧
  • asp.net网站开发视频站长工具ip地址
  • 网页工具栏自动隐藏seo技术交流
  • 重庆做网站建设的公司西安seo诊断
  • 用友公司能不能做网站建设台州seo公司
  • 国家网站备案查询系统在线建站网页制作网站建设平台
  • 哪个视频网站做自媒体互联网怎么打广告推广
  • 网站怎么做动态图片百度信息流平台
  • 网站建设要学哪些方面北京网站建设公司哪家好
  • 东莞莞城网站建设四川seo技术培训
  • 国内做网站的顶尖公司长沙关键词优化服务
  • 网站建设的基本技术快排seo
  • 门户网站设计方案广州白云区新闻头条最新消息今天
  • 西安建立公司网站的步骤推广网站哪个好
  • 博客网站源码网络营销的优势包括
  • 做网站吗网络营销专业如何
  • 小米商城网站建设分析搜狗推广登录入口
  • 卖狗做网站什么关键词最好seo排名赚app
  • 网站类型大全seo优化外包
  • 哪几个小说网站做网编拿的钱多合肥疫情最新消息
  • 网站做推广 建设哪种类型合适公众号关键词排名优化