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

面試JAVA時(shí),問到spring該怎么回答

 更新時(shí)間:2021年08月31日 08:45:13   作者:還怕大雨嗎-  
這篇文章主要介紹了Spring面試資料,學(xué)Java的小伙伴都知道Spring是面試的必問環(huán)節(jié),看完了一天就可掌握數(shù)據(jù)結(jié)構(gòu)和算法的面試題,快來看看吧

Spring面試十連問 

1、談?wù)剬?duì)IOC的理解?

IOC,就是我們經(jīng)常所說的控制反轉(zhuǎn),DI,就是依賴注入,這兩個(gè)是對(duì)同一個(gè)事物從不同角度的解釋。沒有使用spring框架的時(shí)候,我們需要使用一個(gè)對(duì)象,經(jīng)常需要自己去手動(dòng)new,需要自己取管理對(duì)象。使用spring的IOC容器之后,對(duì)象交給spring的IOC容器管理,bean的創(chuàng)建,初始化,結(jié)束,依賴注入等一系列,全部由IOC容器幫我們完成,我們?cè)谛枰褂玫臅r(shí)候,直接調(diào)用就行了。

2、多個(gè)AOP的順序怎么定義

通過 Ordered 和 PriorityOrdered 接口進(jìn)行排序。PriorityOrdered 接口的優(yōu)先級(jí)比 Ordered 更高,如果同時(shí)實(shí)現(xiàn) PriorityOrdered 或 Ordered 接口,則再按 order 值排序,值越小的優(yōu)先級(jí)越高。

3、springBean是線程安全的嗎?

結(jié)論: Bean是線程不安全的

Spring容器中的Bean是否線程安全,容器本身并沒有提供對(duì)Bean的線程安全策略,因此可以說Spring的Bean本身不具備線程安全的特性。

如果Bean是無狀態(tài)的,那么Bean則是線程安全的

如果Bean是有狀態(tài)的,那么Bean就不是線程安全的

另外,Bean是不是線程安全,跟Bean的作用域沒有關(guān)系,Bean的作用域只是表示Bean的生命周期范圍,對(duì)于任何生命周期Bean都是一個(gè)對(duì)象,這個(gè)對(duì)象是不是線程安全的,還是得看Bean里的這個(gè)對(duì)象本身

4、Spring中的bean生命周期?

1.Bean容器找到配置文件中Spring Bean的定義。

2.Bean容器利用Java Reflection API創(chuàng)建一個(gè)Bean的實(shí)例。

3.如果涉及到一些屬性值,利用set()方法設(shè)置一些屬性值。

4.如果Bean實(shí)現(xiàn)了BeanNameAware接口,調(diào)用setBeanName()方法,傳入Bean的名字。

5.如果Bean實(shí)現(xiàn)了BeanClassLoaderAware接口,調(diào)用setBeanClassLoader()方法,傳入ClassLoader對(duì)象的實(shí)例。

6.如果Bean實(shí)現(xiàn)了BeanFactoryAware接口,調(diào)用setBeanClassFacotory()方法,傳入ClassLoader對(duì)象的實(shí)例。

7.與上面的類似,如果實(shí)現(xiàn)了其他*Aware接口,就調(diào)用相應(yīng)的方法。

8.如果有和加載這個(gè)Bean的Spring容器相關(guān)的BeanPostProcessor對(duì)象,執(zhí)行postProcessBeforeInitialization()方法。

9.如果Bean實(shí)現(xiàn)了InitializingBean接口,執(zhí)行afeterPropertiesSet()方法。

10.如果Bean在配置文件中的定義包含init-method屬性,執(zhí)行指定的方法。

11.如果有和加載這個(gè)Bean的Spring容器相關(guān)的BeanPostProcess對(duì)象,執(zhí)行postProcessAfterInitialization()方法。

12.當(dāng)要銷毀Bean的時(shí)候,如果Bean實(shí)現(xiàn)了DisposableBean接口,執(zhí)行destroy()方法。

13.當(dāng)要銷毀Bean的時(shí)候,如果Bean在配置文件中的定義包含destroy-method屬性,執(zhí)行指定的方法。

5、Spring 框架中都用到了哪些設(shè)計(jì)模式?

1.工廠模式:BeanFactory就是簡(jiǎn)單工廠模式的體現(xiàn),用來創(chuàng)建對(duì)象的實(shí)例;

2.單例模式:Bean默認(rèn)為單例模式。

3.代理模式:Spring的AOP功能用到了JDK的動(dòng)態(tài)代理和CGLIB字節(jié)碼生成技術(shù);

4.模板方法:用來解決代碼重復(fù)的問題。比如. RestTemplate, JmsTemplate, JpaTemplate。觀

5.察者模式:定義對(duì)象鍵一種一對(duì)多的依賴關(guān)系,當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生改變時(shí),所有依賴于它的對(duì)象都會(huì)得到通知被制動(dòng)更新,如Spring中l(wèi)istener的實(shí)現(xiàn)–ApplicationListener。

6、@Autowired和@Resource之間的區(qū)別

@Autowired可用于:構(gòu)造函數(shù)、成員變量、Setter方法

@Autowired和@Resource之間的區(qū)別

  • @Autowired默認(rèn)是按照類型裝配注入的,默認(rèn)情況下它要求依賴對(duì)象必須存在(可以設(shè)置它required屬性為false)。
  • @Resource默認(rèn)是按照名稱來裝配注入的,只有當(dāng)找不到與名稱匹配的bean才會(huì)按照類型來裝配注入。

7、Spring支持的事務(wù)管理類型?

Spring支持兩種類型的事務(wù)管理:

編程式事務(wù)管理:這意味你通過編程的方式管理事務(wù),給你帶來極大的靈活性,但是難維護(hù)。

聲明式事務(wù)管理:這意味著你可以將業(yè)務(wù)代碼和事務(wù)管理分離,你只需用注解和XML配置來管理事務(wù)。

8、你更傾向用那種事務(wù)管理類型?

大多數(shù)Spring框架的用戶選擇聲明式事務(wù)管理,因?yàn)樗鼘?duì)應(yīng)用代碼的影響最小,因此更符合一個(gè)無侵入的輕量級(jí)容器的思想。聲明式事務(wù)管理要優(yōu)于編程式事務(wù)管理,雖然比編程式事務(wù)管理(這種方式允許你通過代碼控制事務(wù))少了一點(diǎn)靈活性。唯一不足地方是,最細(xì)粒度只能作用到方法級(jí)別,無法做到像編程式事務(wù)那樣可以作用到代碼塊級(jí)別。

9、Spring事務(wù)中有哪幾種事務(wù)傳播行為?

在TransactionDefinition接口中定義了八個(gè)表示事務(wù)傳播行為的常量。

支持當(dāng)前事務(wù)的情況:

PROPAGATION_REQUIRED:如果當(dāng)前存在事務(wù),則加入該事務(wù);如果當(dāng)前沒有事務(wù),則創(chuàng)建一個(gè)新的事務(wù)。

PROPAGATION_SUPPORTS: 如果當(dāng)前存在事務(wù),則加入該事務(wù);如果當(dāng)前沒有事務(wù),則以非事務(wù)的方式繼續(xù)運(yùn)行。

PROPAGATION_MANDATORY: 如果當(dāng)前存在事務(wù),則加入該事務(wù);如果當(dāng)前沒有事務(wù),則拋出異常。(mandatory:強(qiáng)制性)。

不支持當(dāng)前事務(wù)的情況:

PROPAGATION_REQUIRES_NEW: 創(chuàng)建一個(gè)新的事務(wù),如果當(dāng)前存在事務(wù),則把當(dāng)前事務(wù)掛起。

PROPAGATION_NOT_SUPPORTED: 以非事務(wù)方式運(yùn)行,如果當(dāng)前存在事務(wù),則把當(dāng)前事務(wù)掛起。

PROPAGATION_NEVER: 以非事務(wù)方式運(yùn)行,如果當(dāng)前存在事務(wù),則拋出異常。

其他情況:

PROPAGATION_NESTED: 如果當(dāng)前存在事務(wù),則創(chuàng)建一個(gè)事務(wù)作為當(dāng)前事務(wù)的嵌套事務(wù)來運(yùn)行;如果當(dāng)前沒有事務(wù),則該取值等價(jià)于PROPAGATION_REQUIRED。

10、Spring通知有哪些類型?

在AOP術(shù)語中,切面的工作被稱為通知,實(shí)際上是程序執(zhí)行時(shí)要通過SpringAOP框架觸發(fā)的代碼段。

Spring切面可以應(yīng)用5種類型的通知:

1.前置通知(Before):在目標(biāo)方法被調(diào)用之前調(diào)用通知功能;

2.后置通知(After):在目標(biāo)方法完成之后調(diào)用通知,此時(shí)不會(huì)關(guān)心方法的輸出是什么;

3.返回通知(After-returning ):在目標(biāo)方法成功執(zhí)行之后調(diào)用通知;

4.異常通知(After-throwing):在目標(biāo)方法拋出異常后調(diào)用通知;

5.環(huán)繞通知(Around):通知包裹了被通知的方法,在被通知的方法調(diào)用之前和調(diào)用之后執(zhí)行自定義的行為。

總結(jié)

本片文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • Spring Boot應(yīng)用事件監(jiān)聽示例詳解

    Spring Boot應(yīng)用事件監(jiān)聽示例詳解

    這篇文章主要給大家介紹了關(guān)于Spring Boot應(yīng)用事件監(jiān)聽的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • 一文深入理解Java中的java.lang.reflect.InvocationTargetException錯(cuò)誤

    一文深入理解Java中的java.lang.reflect.InvocationTargetException錯(cuò)誤

    這篇文章主要給大家介紹了關(guān)于Java中java.lang.reflect.InvocationTargetException錯(cuò)誤的相關(guān)資料,java.lang.reflect.InvocationTargetException是Java中的一個(gè)異常類,它通常是由反射調(diào)用方法時(shí)拋出的異常,需要的朋友可以參考下
    2024-03-03
  • MybatisPlus如何自動(dòng)生成映射文件

    MybatisPlus如何自動(dòng)生成映射文件

    這篇文章主要介紹了MybatisPlus如何自動(dòng)生成映射文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 詳解Spring框架下向異步線程傳遞HttpServletRequest參數(shù)的坑

    詳解Spring框架下向異步線程傳遞HttpServletRequest參數(shù)的坑

    這篇文章主要介紹了詳解Spring框架下向異步線程傳遞HttpServletRequest參數(shù)的坑,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-03-03
  • Spring搭配Ehcache實(shí)例解析

    Spring搭配Ehcache實(shí)例解析

    這篇文章主要為大家詳細(xì)介紹了Spring搭配Ehcache實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Java文件批量重命名批量提取特定類型文件

    Java文件批量重命名批量提取特定類型文件

    這篇文章主要介紹了Java文件批量重命名批量提取特定類型文件的相關(guān)資料
    2016-08-08
  • Java多線程的實(shí)現(xiàn)方式比較(兩種方式比較)

    Java多線程的實(shí)現(xiàn)方式比較(兩種方式比較)

    Java多線程實(shí)現(xiàn)方式有兩種,第一種是繼承Thread類,第二種是實(shí)現(xiàn)Runnable接口,兩種有很多差異,下面跟著本文一起學(xué)習(xí)吧
    2015-11-11
  • SpringBoot bean的多種加載方式示例詳解

    SpringBoot bean的多種加載方式示例詳解

    本文詳細(xì)介紹了在SpringBoot中加載Bean的多種方式,包括通過xml配置文件、注解定義、特殊方式如FactoryBean、@ImportResource、ApplicationContext以及使用@Import注解導(dǎo)入bean的方法,感興趣的朋友跟隨小編一起看看吧
    2024-10-10
  • springboot單元測(cè)試依賴踩坑記錄

    springboot單元測(cè)試依賴踩坑記錄

    這篇文章主要介紹了springboot單元測(cè)試依賴踩坑記錄及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • java如何實(shí)現(xiàn)post請(qǐng)求webservice服務(wù)端

    java如何實(shí)現(xiàn)post請(qǐng)求webservice服務(wù)端

    這篇文章主要介紹了java如何實(shí)現(xiàn)post請(qǐng)求webservice服務(wù)端,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03

最新評(píng)論

洪泽县| 崇文区| 渝北区| 东海县| 永城市| 进贤县| 伊川县| 招远市| 黄陵县| 万源市| 绥宁县| 安庆市| 安图县| 方正县| 香格里拉县| 灵台县| 子洲县| 昌平区| 衡阳市| 二连浩特市| 固安县| 榆中县| 德惠市| 万源市| 冀州市| 常德市| 二手房| 沈丘县| 台中市| 含山县| 吉隆县| 莲花县| 绥宁县| 萨迦县| 二连浩特市| 双柏县| 姜堰市| 荣成市| 海口市| 个旧市| 绥德县|