最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2020年06月23日 10:14:50   作者:因分享而收獲  
這篇文章主要介紹了Spring Framework常用面試題及答案匯總,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

1.什么是Spring Framework ?

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

參見官方(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 : 事件驅動,注解驅動,模塊驅動等
  • spring-core : Spring基礎API模塊,如資源管理、泛型處理
  • spring-beans : Spring Bean 相關,如依賴查找、依賴注入
  • spring-aop : Spring AOP 處理,如動態(tài)代理、AOP字節(jié)碼提升
  • spring-expression : Spring表達式語言模塊

(項目使用Maven進行管理時,引入 spring-context模塊后,則會傳遞依賴加載其他4個模塊)

3.什么是IOC ?

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

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

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

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

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

  • AOP抽象
  • 事物抽象
  • 事件機制
  • SPI擴展
  • 強大的第三方整合
  • 易測試性 等

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

BeanFactory是IOC底層容器

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

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

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

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

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

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

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

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

  • 構造器注入
  • Setter方法注入
  • 字段注入
  • 方法注入
  • 接口回調注入

10.Spring偏好構造器注入還是Setter注入 ?

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

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

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

12.單例對象能在Ioc容器啟動后注冊嗎 ?

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

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

Spring BeanDefinition

單例對象

  Resolvable Dependency

@Value 外部化配置

14.Spring內建的Bean作用域有幾種 ?

  • singleton -- 默認單例 ☆
  • prototype -- 原型
  • request -- Web中使用
  • session
  • application
  • websocket

15.Spring 中 singleton Bean 是否在一個應用中是唯一的 ?

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

16.Spring 中 BeanPostProcessor 的使用場景有哪些 ?

Spring 中 BeanPostProcessor 提供 Spring Bean 初始化前和初始化后的生命周期回調;分別對應 postProcessBeforeInitialization 以及 postProcessAfterInitialization 方法,允許對關心的 Bean 進行擴展,甚至替換。

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

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

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

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

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

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

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

  • BeanDefinition 注冊階段 -- registerBeanDefinition
  • BeanDefinition 合并階段 -- getMergedBeanDefinition
  • Bean 實例化前階段 -- resolveBeforeInstantiation
  • Bean 實例化階段 -- createBeanInstance
  • Bean 實例化后階段 --populateBean
  • Bean 屬性賦值前階段 -- populateBean
  • Bean Aware 接口回調階段 -- initializeBean
  • Bean 初始化前階段 -- initializeBean
  • Bean 初始化階段 -- initializeBean
  • Bean 初始化后階段 -- initializeBean
  • Bean 初始化完成階段 -- preInstantiateSingletons
  • Bean 銷毀前階段 -- destroyBean
  • Bean 銷毀階段 -- destroyBean

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Java中多態(tài)性的實現(xiàn)方式

    Java中多態(tài)性的實現(xiàn)方式

    這篇文章主要介紹了Java中多態(tài)性的實現(xiàn)方式,什么是多態(tài)?通過簡單的一道題目幫大家理解java多態(tài)性,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • Java后端面試題最新整理

    Java后端面試題最新整理

    在本篇文章里小編給大家整理了一篇關于Java后端面試題最新整理內容,需要的朋友們可以參考下。
    2020-12-12
  • springboot集成測試里的redis

    springboot集成測試里的redis

    這篇文章主要介紹了springboot集成測試里的redis,本文給大家分享了源碼,添加依賴添加mock的方法,需要的朋友可以參考下
    2018-11-11
  • springBoot 過濾器去除請求參數(shù)前后空格實例詳解

    springBoot 過濾器去除請求參數(shù)前后空格實例詳解

    這篇文章主要為大家介紹了springBoot 過濾器去除請求參數(shù)前后空格實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • maven將項目打包上傳到nexus私服的詳細教程

    maven將項目打包上傳到nexus私服的詳細教程

    這篇文章主要介紹了maven將項目打包上傳到nexus私服,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-07-07
  • mybatis?@InsertProvider報錯問題及解決

    mybatis?@InsertProvider報錯問題及解決

    這篇文章主要介紹了mybatis?@InsertProvider報錯的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • springboot整合easy-es實現(xiàn)數(shù)據(jù)的增刪改查的示例代碼

    springboot整合easy-es實現(xiàn)數(shù)據(jù)的增刪改查的示例代碼

    Easy-Es是一款基于ElasticSearch官方提供的RestHighLevelClient打造的低碼開發(fā)框架,本文主要介紹了springboot整合easy-es實現(xiàn)數(shù)據(jù)的增刪改查的示例代碼,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • 支持生產阻塞的Java線程池

    支持生產阻塞的Java線程池

    在各種并發(fā)編程模型中,生產者-消費者模式大概是最常用的了。在實際工作中,對于生產消費的速度,通常需要做一下權衡
    2014-04-04
  • 關于Mysql的四種存儲引擎

    關于Mysql的四種存儲引擎

    這篇文章主要介紹了關于Mysql的四種存儲引擎,MySql的核心就是存儲引擎,不同的存儲引擎提供不同的存儲機制、索引技巧、鎖定水平等功能,使用不同的存儲引擎,還可以 獲得特定的功能,需要的朋友可以參考下
    2023-05-05
  • gataway斷言工作流程源碼剖析

    gataway斷言工作流程源碼剖析

    這篇文章主要為大家介紹了gataway斷言工作流程源碼剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01

最新評論

沿河| 疏附县| 航空| 察雅县| 五常市| 潜江市| 大洼县| 吐鲁番市| 临高县| 桐庐县| 鲁甸县| 宁德市| 河北省| 乌拉特前旗| 石城县| 彰化县| 太仆寺旗| 商城县| 囊谦县| 贵德县| 开鲁县| 扎赉特旗| 信丰县| 汾阳市| 广宗县| 姜堰市| 汝城县| 商水县| 江阴市| 军事| 正宁县| 固安县| 大埔区| 喀什市| 河北区| 临沧市| 新安县| 中山市| 清原| 江安县| 洛扎县|