大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java學(xué)習(xí) 最新java程序員框架面試題

最新java程序員框架面試題

更新時(shí)間:2020-03-17 10:35:53 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2577次


  BeanFactory和ApplicationContext有什么區(qū)別


  >BeanFactory可以理解為含有bean集合的工廠類。BeanFactory包含了種bean的定義,以便在接收到客戶端請(qǐng)求時(shí)將對(duì)應(yīng)的bean實(shí)例化。


  >BeanFactory還能在實(shí)例化對(duì)象的時(shí)生成協(xié)作類之間的關(guān)系。此舉將bean自身與bean客戶端的配置中解放出來(lái)。BeanFactory還包含了bean生命周期的控制,調(diào)用客戶端的初始化方法(initializationmethods)和銷毀方法(destructionmethods)。


  >從表面上看,applicationcontext如同beanfactory一樣具有bean定義、bean關(guān)聯(lián)關(guān)系的設(shè)置,根據(jù)請(qǐng)求分發(fā)bean的功能。但applicationcontext在此基礎(chǔ)上還提供了其他的功能。


  >提供了支持國(guó)際化的文本消息


  >統(tǒng)一的資源文件讀取方式


  >已在監(jiān)聽(tīng)器中注冊(cè)的bean的事件


  SpringBean的生命周期


  >SpringBean的生命周期簡(jiǎn)單易懂。在一個(gè)bean實(shí)例被初始化時(shí),需要執(zhí)行一系列的初始化操作以達(dá)到可用的狀態(tài)。同樣的,當(dāng)一個(gè)bean不在被調(diào)用時(shí)需要進(jìn)行相關(guān)的析構(gòu)操作,并從bean容器中移除。


  >Springbeanfactory負(fù)責(zé)管理在spring容器中被創(chuàng)建的bean的生命周期。Bean的生命周期由兩組回調(diào)(callback)方法組成。


  >初始化之后調(diào)用的回調(diào)方法。


  >銷毀之前調(diào)用的回調(diào)方法。


  >Spring框架提供了以下四種方式來(lái)管理bean的生命周期事件:


  >InitializingBean和DisposableBean回調(diào)接口


  >針對(duì)特殊行為的其他Aware接口


  >Bean配置文件中的Custominit()方法和destroy()方法


  >@PostConstruct和@PreDestroy注解方式


  SpringIOC如何實(shí)現(xiàn)


  >Spring中的org.springframework.beans包和org.springframework.context包構(gòu)成了Spring框架IoC容器的基礎(chǔ)。


  >BeanFactory接口提供了一個(gè)先進(jìn)的配置機(jī)制,使得任何類型的對(duì)象的配置成為可能。ApplicationContex接口對(duì)BeanFactory(是一個(gè)子接口)進(jìn)行了擴(kuò)展,在BeanFactory的基礎(chǔ)上添加了其他功能,比如與Spring的AOP更容易集成,也提供了處理messageresource的機(jī)制(用于國(guó)際化)、事件傳播以及應(yīng)用層的特別配置,比如針對(duì)Web應(yīng)用的WebApplicationContext。


  >org.springframework.beans.factory.BeanFactory是SpringIoC容器的具體實(shí)現(xiàn),用來(lái)包裝和管理前面提到的各種bean。BeanFactory接口是SpringIoC容器的核心接口。


  說(shuō)說(shuō)SpringAOP


  >面向切面編程,在我們的應(yīng)用中,經(jīng)常需要做一些事情,但是這些事情與核心業(yè)務(wù)無(wú)關(guān),比如,要記錄所有update*方法的執(zhí)行時(shí)間時(shí)間,操作人等等信息,記錄到日志,


  >通過(guò)spring的AOP技術(shù),就可以在不修改update*的代碼的情況下完成該需求。


  SpringAOP實(shí)現(xiàn)原理


  >SpringAOP中的動(dòng)態(tài)代理主要有兩種方式,JDK動(dòng)態(tài)代理和CGLIB動(dòng)態(tài)代理。JDK動(dòng)態(tài)代理通過(guò)反射來(lái)接收被代理的類,并且要求被代理的類必須實(shí)現(xiàn)一個(gè)接口。JDK動(dòng)態(tài)代理的核心是InvocationHandler接口和Proxy類。


  >如果目標(biāo)類沒(méi)有實(shí)現(xiàn)接口,那么SpringAOP會(huì)選擇使用CGLIB來(lái)動(dòng)態(tài)代理目標(biāo)類CGLIB(CodeGenerationLibrary),是一個(gè)代碼生成的類庫(kù),可以在運(yùn)行時(shí)動(dòng)態(tài)的生成某個(gè)類的子類,注意,CGLIB是通過(guò)繼承的方式做的動(dòng)態(tài)代理,因此如果某個(gè)類被標(biāo)記為final,那么它是無(wú)法使用CGLIB做動(dòng)態(tài)代理的。


  動(dòng)態(tài)代理(cglib與JDK)


  >JDK動(dòng)態(tài)代理類和委托類需要都實(shí)現(xiàn)同一個(gè)接口。也就是說(shuō)只有實(shí)現(xiàn)了某個(gè)接口的類可以使用Java動(dòng)態(tài)代理機(jī)制。但是,事實(shí)上使用中并不是遇到的所有類都會(huì)給你實(shí)現(xiàn)一個(gè)接口。因此,對(duì)于沒(méi)有實(shí)現(xiàn)接口的類,就不能使用該機(jī)制。而CGLIB則可以實(shí)現(xiàn)對(duì)類的動(dòng)態(tài)代理。


  Spring事務(wù)實(shí)現(xiàn)方式


  >1、編碼方式


  >所謂編程式事務(wù)指的是通過(guò)編碼方式實(shí)現(xiàn)事務(wù),即類似于JDBC編程實(shí)現(xiàn)事務(wù)管理。


  >2、聲明式事務(wù)管理方式


  >聲明式事務(wù)管理又有兩種實(shí)現(xiàn)方式:基于xml配置文件的方式;另一個(gè)實(shí)在業(yè)務(wù)方法上進(jìn)行@Transaction注解,將事務(wù)規(guī)則應(yīng)用到業(yè)務(wù)邏輯中


  Spring事務(wù)底層原理


  >a、劃分處理單元——IOC


  >由于spring解決的問(wèn)題是對(duì)單個(gè)數(shù)據(jù)庫(kù)進(jìn)行局部事務(wù)處理的,具體的實(shí)現(xiàn)首相用spring中的IOC劃分了事務(wù)處理單元。并且將對(duì)事務(wù)的各種配置放到了ioc容器中(設(shè)置事務(wù)管理器,設(shè)置事務(wù)的傳播特性及隔離機(jī)制)。


  >b、AOP攔截需要進(jìn)行事務(wù)處理的類


  >Spring事務(wù)處理模塊是通過(guò)AOP功能來(lái)實(shí)現(xiàn)聲明式事務(wù)處理的,具體操作(比如事務(wù)實(shí)行的配置和讀取,事務(wù)對(duì)象的抽象),用TransactionProxyFactoryBean接口來(lái)使用AOP功能,生成proxy代理對(duì)象,通過(guò)TransactionInterceptor完成對(duì)代理方法的攔截,將事務(wù)處理的功能編織到攔截的方法中。讀取ioc容器事務(wù)配置屬性,轉(zhuǎn)化為spring事務(wù)處理需要的內(nèi)部數(shù)據(jù)結(jié)構(gòu)(TransactionAttributeSourceAdvisor),轉(zhuǎn)化為T(mén)ransactionAttribute表示的數(shù)據(jù)對(duì)象。


  >c、對(duì)事物處理實(shí)現(xiàn)(事務(wù)的生成、提交、回滾、掛起)


  >spring委托給具體的事務(wù)處理器實(shí)現(xiàn)。實(shí)現(xiàn)了一個(gè)抽象和適配。適配的具體事務(wù)處理器:DataSource數(shù)據(jù)源支持、hibernate數(shù)據(jù)源事務(wù)處理支持、JDO數(shù)據(jù)源事務(wù)處理支持,JPA、JTA數(shù)據(jù)源事務(wù)處理支持。這些支持都是通過(guò)設(shè)計(jì)PlatformTransactionManager、AbstractPlatforTransaction一系列事務(wù)處理的支持。為常用數(shù)據(jù)源支持提供了一系列的TransactionManager。


  >d、結(jié)合


  >PlatformTransactionManager實(shí)現(xiàn)了TransactionInterception接口,讓其與TransactionProxyFactoryBean結(jié)合起來(lái),形成一個(gè)Spring聲明式事務(wù)處理的設(shè)計(jì)體系。


最新java程序員框架面試題


    以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“最新java程序員框架面試題”的內(nèi)容,希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。


提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 免费不卡毛片 | 色综合久久久久久 | 中文字幕一级毛片视频 | 国产亚洲精品久久久久久久软件 | 中国免费一级毛片 | 国产成人精品男人的天堂网站 | 成人毛片免费看 | 日本视频一区二区三区 | 女人a级毛片 | 色综合久久亚洲国产日韩 | 成人午夜大片免费视频77777 | 91精品久久久久久久久久小网站 | 亚洲欧洲日产国码天堂 | 三人性free孕交欧美 | 亚洲免费资源 | 91正在播放极品白嫩在线观看 | 国产精品99久久久久久www | 久久伊人最新 | 亚洲精品国产第一区二区图片 | 69性影院在线观看国产精品87 | 欧美综合国产 | 波多野结衣久久精品免费播放 | 99热久久这里只精品国产9 | 亚洲精品99久久一区二区三区 | 成熟女人免费一级毛片 | 99视频精品全部在线播放 | 狠狠色噜噜狠狠狠狠2021天天 | 国产成人a毛片在线 | 欧美一区二区在线视频 | 末成年娇小性色xxxxx视频 | 中文字幕一区在线播放 | 97成人在线视频 | 色吧五月婷婷 | 国产一区二区三区欧美精品 | 欧美开嫩苞实拍视频在线观看 | 天天做天天做天天综合网 | www久久久久| 久久久久综合网久久 | 一区二区三区不卡免费视频97 | 亚洲视频国产精品 | 日本夜夜操 |