国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

Spring Framework常用面試題及答案匯總

瀏覽:4日期:2023-08-31 18:24:04

1.什么是Spring Framework ?

Spring Framework 是一個(gè)提供了完整性的編程或配置一個(gè)現(xiàn)代化的基于JAVA的企業(yè)應(yīng)用,各種基礎(chǔ)設(shè)施的支持。

參見官方(https://spring.io/projects/spring-framework#overview):

The Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform.

Spring makes it easy to create Java enterprise applications. It provides everything you need to embrace the Java language in an enterprise environment, with support for Groovy and Kotlin as alternative languages on the JVM, and with the flexibility to create many kinds of architectures depending on an application’s needs. As of Spring Framework 5.1, Spring requires JDK 8+ (Java SE 8+) and provides out-of-the-box support for JDK 11 LTS. Java SE 8 update 60 is suggested as the minimum patch release for Java 8, but it is generally recommended to use a recent patch release.

2.Spring Framework有哪些核心模塊 ?

spring-context : 事件驅(qū)動(dòng),注解驅(qū)動(dòng),模塊驅(qū)動(dòng)等 spring-core : Spring基礎(chǔ)API模塊,如資源管理、泛型處理 spring-beans : Spring Bean 相關(guān),如依賴查找、依賴注入 spring-aop : Spring AOP 處理,如動(dòng)態(tài)代理、AOP字節(jié)碼提升 spring-expression : Spring表達(dá)式語言模塊

(項(xiàng)目使用Maven進(jìn)行管理時(shí),引入 spring-context模塊后,則會(huì)傳遞依賴加載其他4個(gè)模塊)

3.什么是IOC ?

IOC是控制反轉(zhuǎn),類似于好萊塢原則(你不要打電話給我,我會(huì)打電話給你),主要包含依賴查找和依賴注入

4.依賴注入和依賴查找的區(qū)別 ?

依賴查找是主動(dòng)或手動(dòng)的依賴查找方式,通常需要依賴容器或標(biāo)準(zhǔn)API實(shí)現(xiàn)。而依賴注入則是手動(dòng)或自動(dòng)依賴綁定的方式,無需依賴特定的容器和API

5.Spring作為IOC容器的優(yōu)勢(shì)有哪些 ?

典型的IOC容器管理,依賴注入、依賴查找

AOP抽象 事物抽象 事件機(jī)制 SPI擴(kuò)展 強(qiáng)大的第三方整合 易測(cè)試性 等

6.Spring 中 BeanFactory和FactoryBean區(qū)別 ?

BeanFactory是IOC底層容器

FactoryBean 是創(chuàng)建Bean的一種方式,幫助實(shí)現(xiàn)復(fù)雜的初始化邏輯

7.Spring 中 BeanFactory和ObjectFactory區(qū)別 ?

ObjectFactory和BeanFactory均提供依賴查找的能力;

ObjectFactory僅關(guān)注一個(gè)或一種類型的Bean的依賴查找,并且自身不具備依賴查找的能力,能力則由BeanFactory輸出;

BeanFactory則提供了單一類型、集合類型以及層次性等多種依賴查找方式;

8.BeanFactory.getBean 操作是否線程安全 ?

BeanFactory.getBean 方法的執(zhí)行是線程安全的,操作過程中會(huì)增加互斥鎖.

9.Spring有多少種依賴注入的方式 ?

構(gòu)造器注入 Setter方法注入 字段注入 方法注入 接口回調(diào)注入

10.Spring偏好構(gòu)造器注入還是Setter注入 ?

兩種依賴注入方式均可以使用,如果是必須依賴的話,推薦使用構(gòu)造器注入,Setter注入用于可選依賴

11.Spring注入和依賴來源是否相同 ?

不相同,依賴查找的來源僅限于Spring BeanDefinition 以及單例對(duì)象;依賴注入的來源還包括 ResolvableDependency以及@Value所標(biāo)注的外部化配置

12.單例對(duì)象能在Ioc容器啟動(dòng)后注冊(cè)嗎 ?

可以的,單例對(duì)象的注冊(cè)于BeanDefinition不同,BeanDefinition會(huì)被ConfigurableListableBeanFactory#freezeConfiguration()方法影響,從而凍結(jié)注冊(cè),單例對(duì)象則沒有這個(gè)限制

13.Spring依賴注入的來源有哪些 ?

Spring BeanDefinition

單例對(duì)象

  Resolvable Dependency

@Value 外部化配置

14.Spring內(nèi)建的Bean作用域有幾種 ?

singleton -- 默認(rèn)單例 ☆ prototype -- 原型 request -- Web中使用 session application websocket

15.Spring 中 singleton Bean 是否在一個(gè)應(yīng)用中是唯一的 ?

否, singleton bean 僅在當(dāng)前Spring IoC 容器(Bean Factory)中是單例對(duì)象; 而BeanFactory可能存在父容器

16.Spring 中 BeanPostProcessor 的使用場(chǎng)景有哪些 ?

Spring 中 BeanPostProcessor 提供 Spring Bean 初始化前和初始化后的生命周期回調(diào);分別對(duì)應(yīng) postProcessBeforeInitialization 以及 postProcessAfterInitialization 方法,允許對(duì)關(guān)心的 Bean 進(jìn)行擴(kuò)展,甚至替換。

其中 ApplicationContext 相關(guān)的 Aware 回調(diào)也是基于 BeanPostProcessor 實(shí)現(xiàn),即 ApplicationContextAwareProcessor

17.Spring 中 BeanFactoryPostProcessor 與 BeanPostProcessor 的區(qū)別 ?

BeanFactoryPostProcessor 是 Spring BeanFactory(實(shí)際為 ConfigureableListableBeanFactory)的后置處理器,用于擴(kuò)展 BeanFactory, 或通過 BeanFactory 進(jìn)行依賴查找或依賴注入;

BeanFactoryPostProcessor 必須有 Spring ApplicationContext 執(zhí)行,BeanFactory 無法與其直接交互;

BeanPostProcessor 則直接與 BeanFactory 關(guān)聯(lián),屬于N對(duì)1的關(guān)系。

18.Spring 中 BeanFactory 是如何處理 Bean 的生命周期 ?

BeanFactory的默認(rèn)實(shí)現(xiàn)為 DefaultListableBeanFactory,其中Bean生命周期與方法映射如下:

BeanDefinition 注冊(cè)階段 -- registerBeanDefinition BeanDefinition 合并階段 -- getMergedBeanDefinition Bean 實(shí)例化前階段 -- resolveBeforeInstantiation Bean 實(shí)例化階段 -- createBeanInstance Bean 實(shí)例化后階段 --populateBean Bean 屬性賦值前階段 -- populateBean Bean Aware 接口回調(diào)階段 -- initializeBean Bean 初始化前階段 -- initializeBean Bean 初始化階段 -- initializeBean Bean 初始化后階段 -- initializeBean Bean 初始化完成階段 -- preInstantiateSingletons Bean 銷毀前階段 -- destroyBean Bean 銷毀階段 -- destroyBean

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 国产一区私人高清影院 | 69日本xxxxxxxxx13 69视频成人 | 美女一级毛片免费不卡视频 | 香蕉成人国产精品免费看网站 | 黄色a一片 | japanesevideo乱子 japanese日本tube色系 | 青青草国产免费一区二区 | 伊人狼人影院 | 9久9久热精品视频在线观看 | 久久午夜精品 | 国产精品莉莉欧美自在线线 | 成年人网站免费 | 欧美特级特黄a大片免费 | 国产亚洲精品国产第一 | 国产成人一区二区三区 | 日本三级日产三级国产三级 | 视频综合网 | 女高中生被cao到哭视频 | 农村寡妇女人一级毛片 | 永久免费毛片在线播放 | 九九视频在线观看视频6 | 精品一区国产 | 台湾三级香港三级在线理论 | 色吊丝在线观看国产 | 狠狠色狠狠色综合日日32 | 美女张腿男人桶免费视频 | 欧美成人免费观看 | 一级毛片真人不卡免费播 | 中文字幕1区| 久久频这里精品99香蕉久网址 | 久草免费在线视频 | 日本一区二区三区高清在线观看 | 亚洲一级特黄特黄的大片 | 成人久久影院 | 日本黄区 | 国产精品一区二区三区免费 | 亚洲日本一区二区三区高清在线 | 欧美毛片 | 亚洲色视频在线播放网站 | 美女张开腿黄网站免费国产 | 在线成人欧美 |