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

网站可以同时做竞价和优化吗欧洲网站服务器

网站可以同时做竞价和优化吗,欧洲网站服务器,动漫设计与制作工资,科技网站建设总结图解 Spring 核心数据结构:BeanDefinition 简介 使用spring框架的技术人员都知道spring两个大核心技术IOC和AOP,随着投入更多的时间去学习spring生态,越发觉得spring的发展不可思议,一直都是引领着Java EE的技术变革,这…

图解 Spring 核心数据结构:BeanDefinition

简介

        使用spring框架的技术人员都知道spring两个大核心技术IOC和AOP,随着投入更多的时间去学习spring生态,越发觉得spring的发展不可思议,一直都是引领着Java EE的技术变革,这样一系列优秀的框架我们应该花多一点时间去深入思考spring生态的发展,学习spring中优秀的设计思想。以前学习spring我们都是梳理一下spring bean的生命周期,debug一下spring aop的源码,最近想想感觉完全不够深入,所以近期想着出一系列文章,以图解的方式细致入微的去理解spring的每一个细节,本篇将围绕BeanDefinition的设计这一细节展开讲解,希望对读者有所启发。

一、spring bean是什么

        使用了这么久的spring框架,那么spring bean是什么呢?我们都知道spring ioc会载入和管理我们的bean,我理解bean实际就是我们程序中使用的对象,初学spring的时候经常被问到不用spring我们是怎么开发的?没有spring我们使用对象的时候自己new,一旦该对象不再被使用,则由 Java 自动进行垃圾回收。简单的描述我们是不是感觉spring bean没什么神秘了,就是我们new的对象。

        Spring 中的对象是 bean,bean实际上就是我们new的对象,只不过 Spring 不再自己去 new 对象了,而是由 IoC 容器去帮助我们实例化对象并且管理它,我们需要哪个对象,到IoC 容器里获取即可。IoC 其实就是解决对象之间的耦合问题,Spring Bean 的生命周期完全由容器控制。

        我们对spring bean有了一些概念之后,那我们是否好奇spirng bean是以什么新式存储的呢?

二、BeanDefinition的设计

       在Spring框架中定义了一个BeanDefinition接口,用于描述和配置Spring容器中的Bean,用于定义Bean的配置元数据,包括类名、作用域、构造函数参数、属性值、初始化方法、销毁方法和依赖关系等信息,BeanDefinition提供了一种抽象,使得开发者能够以声明性的方式描述如何实例化、配置和组装一个特定的Bean。

      随着技术的发展,BeanDefinition接口得到了极大的发展丰富,继承体系如下图所示:

(1)、AttributeAccessor: 提供对 BeanDefinition 属性操作能力。
(2)、AttributeAccessorSupport: 使用了 Map 进行属性的存储的。
(3)、BeanMetadataAttributeAccessor: 代表了一个 Bean 元数据的属性操作。
(4)、BeanMetadataElement: BeanDefinition 元数据,返回该 Bean 的来源。
(5)、BeanDefinition: 用来描述 Bean,里面存放 Bean 元数据,比如 Bean 类名、scope、属性、构造函数参数列表、依赖的 Bean、是否是单例类、是否是懒加载等一些列信息。
(6)、AbstractBeanDefinition: 抽象类统一实现了 BeanDefinition 定义的一部分操作,可以说是定义了 BeanDefinition 很多默认的属性。
(7)、RootBeanDefinition: 代表一个 XML,Java Config来的 BeanDefinition。
(8)、AnnotatedBeanDefinition: 表示注解类型 BeanDefinition。有两个重要的属性:AnnotationMetadata、MethodMetadata 分别表示 BeanDefinition 的注解元信息和方法元信息。实现了此接口的 BeanDefinition 可以获取到注解元数据和方法元数据。
(9)、ChildBeanDefinition: 可以让子 BeanDefinition 定义拥有从父母那里继承配置的能力。
(10)、GenericBeanDefinition: 是 Spring 2.5 之后才有的,这个的想法是用来替代 RootBeanDefinition/ChildBeanDefinition,而 RootBeanDefinition/ChildBeanDefinition 可以在 Spring 预加载的时候使用。
(11)、AnnotatedGenericBeanDefinition: 表示 @Configuration 注解注释的 BeanDefinition 类。是 AnnotatedBeanDefinition 的一个具体实现。传入指定类后,可以获取类中的注解。
(12)、ScannedGenericBeanDefinition: 表示 @Component、@Service、@Controller 等注解注释的 Bean 类。是 AnnotatedBeanDefinition 的另一个实现,与 AnnotatedGenericBeanDefinition 不同的是,ScannedGenericBeanDefinition 是通过扫描 class,然后操作 ASM 进行解析的。

总结

        本篇简单介绍了spring bean的相关概念,以及初步分析了BeanDefinition的设计,理论概念性的内容总是枯燥乏味的,为了不影响文章的可读性本篇先介绍到这里,后续再出文章进行补充讲解。

http://www.tj-hxxt.cn/news/32011.html

相关文章:

  • 外贸soho网站建设惠州seo优化服务
  • 菜鸟网站编程搜索网站排行
  • 2024年重大新闻摘抄百度sem优化师
  • 先进网站建设有哪些百度手机管家
  • 淘宝运营培训机构北京seo外包公司要靠谱的
  • 口碑好的网站建设多少钱广告策划
  • 武汉装修在线网整站seo免费咨询
  • 炫彩发光字制作天津seo网络营销
  • 教你做文案的网站推荐企业类网站有哪些例子
  • 电子商务网站开发流程上海seo推广服务
  • 网站建设发票内容给我免费播放片高清在线观看
  • 网站建设制作设计微信管理系统登录
  • 高端品牌男鞋有哪些seo免费优化软件
  • 小说网站排名怎么做推广平台网站热狗网
  • 网站建设搜索优化直通车怎么开效果最佳
  • 送上门卤菜网站要怎么做厦门seo搜索排名
  • 做ppt的动图下载哪些网站百度标注平台怎么加入
  • 南阳市做网站湖南seo推广多少钱
  • 网站建设_app开发免费制作个人网站
  • 我要啦免费统计怎么做网站购物网站推广方案
  • 什么是网站跳出率谷歌优化seo
  • 有哪些可以做包装袋的网站seo优化诊断
  • 基础很差去公司做网站seo网络优化是什么工作
  • 长沙网站优化推广seo短视频加密路线
  • 网站建设 趋势有没有专门做策划的公司
  • 网站空间ip需不需要备案外贸网络推广营销
  • 兰州做网站改版的公司想学手艺在哪里可以培训
  • 一个云主机可以做多少网站如何建造一个网站
  • html5素材网站北京优化seo公司
  • 河北省建设安全监督站的网站手机金融界网站