中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

教你怎么做垃圾網(wǎng)站關(guān)鍵詞排名優(yōu)化公司外包

教你怎么做垃圾網(wǎng)站,關(guān)鍵詞排名優(yōu)化公司外包,wordpress 淘寶 采集插件,東莞輕推網(wǎng)絡(luò)公司圖解 Spring 核心數(shù)據(jù)結(jié)構(gòu):BeanDefinition 簡(jiǎn)介 使用spring框架的技術(shù)人員都知道spring兩個(gè)大核心技術(shù)IOC和AOP,隨著投入更多的時(shí)間去學(xué)習(xí)spring生態(tài),越發(fā)覺(jué)得spring的發(fā)展不可思議,一直都是引領(lǐng)著Java EE的技術(shù)變革,這…

圖解 Spring 核心數(shù)據(jù)結(jié)構(gòu):BeanDefinition

簡(jiǎn)介

? ? ? ? 使用spring框架的技術(shù)人員都知道spring兩個(gè)大核心技術(shù)IOC和AOP,隨著投入更多的時(shí)間去學(xué)習(xí)spring生態(tài),越發(fā)覺(jué)得spring的發(fā)展不可思議,一直都是引領(lǐng)著Java EE的技術(shù)變革,這樣一系列優(yōu)秀的框架我們應(yīng)該花多一點(diǎn)時(shí)間去深入思考spring生態(tài)的發(fā)展,學(xué)習(xí)spring中優(yōu)秀的設(shè)計(jì)思想。以前學(xué)習(xí)spring我們都是梳理一下spring bean的生命周期,debug一下spring aop的源碼,最近想想感覺(jué)完全不夠深入,所以近期想著出一系列文章,以圖解的方式細(xì)致入微的去理解spring的每一個(gè)細(xì)節(jié),本篇將圍繞BeanDefinition的設(shè)計(jì)這一細(xì)節(jié)展開(kāi)講解,希望對(duì)讀者有所啟發(fā)。

一、spring bean是什么

? ? ? ? 使用了這么久的spring框架,那么spring bean是什么呢?我們都知道spring ioc會(huì)載入和管理我們的bean,我理解bean實(shí)際就是我們程序中使用的對(duì)象,初學(xué)spring的時(shí)候經(jīng)常被問(wèn)到不用spring我們是怎么開(kāi)發(fā)的?沒(méi)有spring我們使用對(duì)象的時(shí)候自己new,一旦該對(duì)象不再被使用,則由 Java 自動(dòng)進(jìn)行垃圾回收。簡(jiǎn)單的描述我們是不是感覺(jué)spring bean沒(méi)什么神秘了,就是我們new的對(duì)象。

????????Spring 中的對(duì)象是 bean,bean實(shí)際上就是我們new的對(duì)象,只不過(guò) Spring 不再自己去 new 對(duì)象了,而是由 IoC 容器去幫助我們實(shí)例化對(duì)象并且管理它,我們需要哪個(gè)對(duì)象,到IoC 容器里獲取即可。IoC 其實(shí)就是解決對(duì)象之間的耦合問(wèn)題,Spring Bean 的生命周期完全由容器控制。

? ? ? ? 我們對(duì)spring bean有了一些概念之后,那我們是否好奇spirng bean是以什么新式存儲(chǔ)的呢?

二、BeanDefinition的設(shè)計(jì)

???????在Spring框架中定義了一個(gè)BeanDefinition接口,用于描述和配置Spring容器中的Bean,用于定義Bean的配置元數(shù)據(jù),包括類名、作用域、構(gòu)造函數(shù)參數(shù)、屬性值、初始化方法、銷毀方法和依賴關(guān)系等信息,BeanDefinition提供了一種抽象,使得開(kāi)發(fā)者能夠以聲明性的方式描述如何實(shí)例化、配置和組裝一個(gè)特定的Bean。

? ? ? 隨著技術(shù)的發(fā)展,BeanDefinition接口得到了極大的發(fā)展豐富,繼承體系如下圖所示:

(1)、AttributeAccessor: 提供對(duì)?BeanDefinition?屬性操作能力。
(2)、AttributeAccessorSupport: 使用了?Map?進(jìn)行屬性的存儲(chǔ)的。
(3)、BeanMetadataAttributeAccessor: 代表了一個(gè) Bean 元數(shù)據(jù)的屬性操作。
(4)、BeanMetadataElement:?BeanDefinition?元數(shù)據(jù),返回該 Bean 的來(lái)源。
(5)、BeanDefinition: 用來(lái)描述 Bean,里面存放 Bean 元數(shù)據(jù),比如 Bean 類名、scope、屬性、構(gòu)造函數(shù)參數(shù)列表、依賴的 Bean、是否是單例類、是否是懶加載等一些列信息。
(6)、AbstractBeanDefinition: 抽象類統(tǒng)一實(shí)現(xiàn)了?BeanDefinition?定義的一部分操作,可以說(shuō)是定義了?BeanDefinition?很多默認(rèn)的屬性。
(7)、RootBeanDefinition: 代表一個(gè) XML,Java Config來(lái)的?BeanDefinition。
(8)、AnnotatedBeanDefinition: 表示注解類型?BeanDefinition。有兩個(gè)重要的屬性:AnnotationMetadata、MethodMetadata?分別表示?BeanDefinition?的注解元信息和方法元信息。實(shí)現(xiàn)了此接口的?BeanDefinition?可以獲取到注解元數(shù)據(jù)和方法元數(shù)據(jù)。
(9)、ChildBeanDefinition: 可以讓子?BeanDefinition?定義擁有從父母那里繼承配置的能力。
(10)、GenericBeanDefinition: 是 Spring 2.5 之后才有的,這個(gè)的想法是用來(lái)替代?RootBeanDefinition/ChildBeanDefinition,而?RootBeanDefinition/ChildBeanDefinition?可以在 Spring 預(yù)加載的時(shí)候使用。
(11)、AnnotatedGenericBeanDefinition: 表示?@Configuration?注解注釋的?BeanDefinition?類。是?AnnotatedBeanDefinition?的一個(gè)具體實(shí)現(xiàn)。傳入指定類后,可以獲取類中的注解。
(12)、ScannedGenericBeanDefinition: 表示?@Component、@Service、@Controller?等注解注釋的 Bean 類。是?AnnotatedBeanDefinition?的另一個(gè)實(shí)現(xiàn),與?AnnotatedGenericBeanDefinition?不同的是,ScannedGenericBeanDefinition?是通過(guò)掃描 class,然后操作 ASM 進(jìn)行解析的。

總結(jié)

? ? ? ? 本篇簡(jiǎn)單介紹了spring bean的相關(guān)概念,以及初步分析了BeanDefinition的設(shè)計(jì),理論概念性的內(nèi)容總是枯燥乏味的,為了不影響文章的可讀性本篇先介紹到這里,后續(xù)再出文章進(jìn)行補(bǔ)充講解。

http://www.risenshineclean.com/news/49259.html

相關(guān)文章:

  • 利用ionic做的網(wǎng)站夜夜草
  • 怎么申請(qǐng)一個(gè)免費(fèi)域名seo站內(nèi)優(yōu)化和站外優(yōu)化
  • 南平武夷山網(wǎng)站建設(shè)網(wǎng)絡(luò)整合營(yíng)銷4i原則是指
  • 長(zhǎng)沙網(wǎng)站開(kāi)發(fā)微聯(lián)百度搜索什么關(guān)鍵詞能搜到網(wǎng)站
  • 如何給網(wǎng)站2做推廣北京網(wǎng)絡(luò)營(yíng)銷策劃公司
  • 去國(guó)外做非法網(wǎng)站天津seo網(wǎng)絡(luò)營(yíng)銷
  • ruby網(wǎng)站開(kāi)發(fā)工程師招聘2023年免費(fèi)b站推廣大全
  • 靖邊商務(wù)網(wǎng)站建設(shè)網(wǎng)頁(yè)設(shè)計(jì)參考網(wǎng)站
  • 免費(fèi)推廣網(wǎng)站在線觀看網(wǎng)絡(luò)運(yùn)營(yíng)課程培訓(xùn)班
  • 網(wǎng)站建設(shè)口號(hào)seo推廣系統(tǒng)
  • 做網(wǎng)站需要提供什么網(wǎng)絡(luò)營(yíng)銷的優(yōu)勢(shì)有哪些?
  • 網(wǎng)站編輯專題怎么做東莞百度seo推廣公司
  • 網(wǎng)站建設(shè)公司該如何選擇谷歌搜索引擎香港免費(fèi)入口
  • 網(wǎng)站團(tuán)購(gòu)報(bào)名怎么做整站seo排名外包
  • wordpress 前臺(tái)注冊(cè)seo排名優(yōu)化哪家好
  • 機(jī)票特價(jià)網(wǎng)站建設(shè)seo咨詢解決方案
  • 增城微網(wǎng)站建設(shè)企業(yè)營(yíng)銷模式
  • 互聯(lián)網(wǎng)運(yùn)營(yíng)網(wǎng)站免費(fèi)網(wǎng)絡(luò)推廣網(wǎng)址
  • 一家專門做開(kāi)網(wǎng)店的網(wǎng)站西安百度seo代理
  • 怎么建立自己的站點(diǎn)上海網(wǎng)站建設(shè)開(kāi)發(fā)
  • 上海推廣網(wǎng)站長(zhǎng)沙網(wǎng)絡(luò)推廣公司
  • 北京做網(wǎng)站公司有哪些百度搜索官網(wǎng)
  • 特價(jià)網(wǎng)站建設(shè)官網(wǎng)阿里云域名注冊(cè)入口
  • 好搜客網(wǎng)站如何推廣app
  • 安徽區(qū)塊鏈虛擬幣網(wǎng)站開(kāi)發(fā)方案濟(jì)南網(wǎng)站自然優(yōu)化
  • 無(wú)錫高端網(wǎng)站設(shè)計(jì)建設(shè)seo優(yōu)化軟件大全
  • 怎么做網(wǎng)站旅游宣傳第三波疫情將全面大爆發(fā)
  • 東莞公司網(wǎng)站建設(shè)seo推廣需要多少錢
  • 安溪縣住房和城鄉(xiāng)規(guī)劃建設(shè)網(wǎng)站銷售平臺(tái)排名
  • 門戶網(wǎng)站標(biāo)題居中加大百度搜索 手機(jī)