每日五道java面試題之spring篇(三)

在這里插入圖片描述

目錄:

  • 第一題 ApplicationContext和BeanFactory有什么區別?
  • 第二題 Spring中的事務是如何實現的?
  • 第三題 Spring中什么時候@Transactional會失效?
  • 第四題 Spring容器啟動流程是怎樣的?
  • 第五題 Spring Boot、Spring MVC 和 Spring 有什么區別?

第一題 ApplicationContext和BeanFactory有什么區別?

BeanFactory是Spring中?常核?的組件,表示Bean??,可以?成Bean,維護Bean,?ApplicationContext繼承了BeanFactory,所以ApplicationContext擁有BeanFactory所有的特點,也是?個Bean??,但是ApplicationContext除開繼承了BeanFactory之外,還繼承了諸如EnvironmentCapable、MessageSource、ApplicationEventPublisher等接?,從?ApplicationContext還有獲取系統環境變量、國際化、事件發布等功能,這是BeanFactory所不具備的

第二題 Spring中的事務是如何實現的?

  1. Spring事務底層是基于數據庫事務和AOP機制的
  2. ?先對于使?了@Transactional注解的Bean,Spring會創建?個代理對象作為Bean
  3. 當調?代理對象的?法時,會先判斷該?法上是否加了@Transactional注解
  4. 如果加了,那么則利?事務管理器創建?個數據庫連接
  5. 并且修改數據庫連接的autocommit屬性為false,禁?此連接的?動提交,這是實現Spring事務?
    常重要的?步
  6. 然后執?當前?法,?法中會執?sql
  7. 執?完當前?法后,如果沒有出現異常就直接提交事務
  8. 如果出現了異常,并且這個異常是需要回滾的就會回滾事務,否則仍然提交事務
  9. Spring事務的隔離級別對應的就是數據庫的隔離級別
  10. Spring事務的傳播機制是Spring事務??實現的,也是Spring事務中最復雜的
  11. Spring事務的傳播機制是基于數據庫連接來做的,?個數據庫連接?個事務,如果傳播機制配置為
    需要新開?個事務,那么實際上就是先建??個數據庫連接,在此新數據庫連接上執?sql

第三題 Spring中什么時候@Transactional會失效?

因為Spring事務是基于代理來實現的,所以某個加了@Transactional的?法只有是被代理對象調?時,
那么這個注解才會?效,所以如果是被代理對象來調?這個?法,那么@Transactional是不會失效的。

同時如果某個?法是private的,那么@Transactional也會失效,因為底層cglib是基于??類來實現
的,?類是不能重載?類的private?法的,所以?法很好的利?代理,也會導致@Transactianal失效

第四題 Spring容器啟動流程是怎樣的?

  1. 在創建Spring容器,也就是啟動Spring時:
  2. ?先會進?掃描,掃描得到所有的BeanDefinition對象,并存在?個Map中
  3. 然后篩選出?懶加載的單例BeanDefinition進?創建Bean,對于多例Bean不需要在啟動過程中去進
    ?創建,對于多例Bean會在每次獲取Bean時利?BeanDefinition去創建
  4. 利?BeanDefinition創建Bean就是Bean的創建?命周期,這期間包括了合并BeanDefinition、推斷構造?法、實例化、屬性填充、初始化前、初始化、初始化后等步驟,其中AOP就是發?在初始化后這?步驟中
  5. 單例Bean創建完了之后,Spring會發布?個容器啟動事件
  6. Spring啟動結束
  7. 在源碼中會更復雜,?如源碼中會提供?些模板?法,讓?類來實現,?如源碼中還涉及到?些BeanFactoryPostProcessor和BeanPostProcessor的注冊,Spring的掃描就是通過BenaFactoryPostProcessor來實現的,依賴注?就是通過BeanPostProcessor來實現的
  8. 在Spring啟動過程中還會去處理@Import等注解

第五題 Spring Boot、Spring MVC 和 Spring 有什么區別?

spring是?個IOC容器,?來管理Bean,使?依賴注?實現控制反轉,可以很?便的整合各種框架,提供AOP機制彌補OOP的代碼重復問題、更?便將不同類不同?法中的共同處理抽取成切?、?動注?給?法執?,?如?志、異常等

springmvc是spring對web框架的?個解決?案,提供了?個總的前端控制器Servlet,?來接收請求,然后定義了?套路由策略(url到handle的映射)及適配執?handle,將handle結果使?視圖解析技術?成視圖展現給前端

springboot是spring提供的?個快速開發?具包,讓程序員能更?便、更快速的開發spring+springmvc應?,簡化了配置(約定了默認配置),整合了?系列的解決?案(starter機制)、redis、mongodb、es,可以開箱即?

如果我的內容對你有幫助,請點贊,評論,收藏。創作不易,大家的支持就是我堅持下去的動力
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/697856.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/697856.shtml
英文地址,請注明出處:http://en.pswp.cn/news/697856.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Sip網絡廣播號角,sip廣播系統公共廣播系統有源喇叭

Sip網絡廣播號角,sip廣播系統公共廣播系統有源喇叭 SV-7044VP網絡有源喇叭,具有10/100M以太網接口,內置高品質揚聲器,通過自帶放大器播放網絡音頻,揚聲器輸出功率高達30W,還支持設置最多10個組播優先區域&…

js如何拋異常,拋自定義的異常

js如何拋異常,拋自定義的異常 最簡單的自定義異常 throw "hello" 來自chrome123的控制臺的測試 throw "hello" VM209:1 Uncaught hello (匿名) VM209:1 try{ throw "hello";}catch(e){console.log(e);} VM338:1 hello…

nuxt項目搭建

1.先下載nuxt腳手架 yarn create nuxt-app <項目名>&#xff0c;記得安裝完項目&#xff0c;npm i,下載node包 目錄介紹 components 存放組件分別是頭部&#xff08;包含導航&#xff09;和底部 layouts 頁面布局&#xff0c;實現一個頁面整體架構規則&#xff0c;頭…

XTuner InternLM-Chat 個人小助手認知微調實踐

要解決的問題&#xff1a; 如何讓模型知道自己做什么&#xff0c;是什么樣身份。是誰創建了他&#xff01;&#xff01;&#xff01; 概述 目標&#xff1a;通過微調&#xff0c;幫助模型認清了解對自己身份弟位 方式&#xff1a;使用XTuner進行微調 微調前&#xff08;回答…

精致女童時尚穿搭~你想要的我都有哦

不論是版型還是顏色 都絕絕子的一件輕薄外套 整件看著干凈利落有設計感 兩側按扣式口袋超級實用的 穿著透氣不悶熱 搭配各種風格的褲子都一絕

【安卓基礎5】中級控件

&#x1f3c6;作者簡介&#xff1a;|康有為| &#xff0c;大四在讀&#xff0c;目前在小米安卓實習&#xff0c;畢業入職 &#x1f3c6;本文收錄于 安卓學習大全持續更新中&#xff0c;歡迎關注 &#x1f3c6;安卓學習資料推薦&#xff1a; 視頻&#xff1a;b站搜動腦學院 視頻…

中東阿拉伯阿聯酋迪拜媒體宣發稿新聞報道推廣有哪些平臺渠道?跨境出海營銷

【本篇由言同數字科技有限公司原創】阿拉伯聯合酋長國是一個經濟和文化極為繁榮的地區&#xff0c;其中的迪拜更是以其獨特的地理位置、國際化的環境和世界級的商業和金融中心而出名。 1. 全球市場&#xff1a;阿聯酋迪拜是一個全球化的商業樞紐&#xff0c;吸引了來自世界各地…

無線聽覺新體驗:南卡、韶音、墨覺骨傳導耳機綜合評測

作為一個資深的跑步愛好者&#xff0c;我幾乎離不開音樂的陪伴。不知道大家有沒有同感&#xff0c;有時候一首歌曲就是我堅持下去的動力&#xff0c;尤其是在那段艱難的跑步時刻。但是找到一款既能讓我在運動中自由呼吸、又能提供優質音樂體驗的耳機&#xff0c;并不是一件容易…

C#,動態規劃(DP)丟雞蛋問題(Egg Dropping Puzzle)的三種算法與源代碼

1 扔雞蛋問題 動態規劃&#xff08;Dynamic Programming&#xff0c;DP&#xff09;是運籌學的一個分支&#xff0c;是求解決策過程最優化的過程。20世紀50年代初&#xff0c;美國數學家貝爾曼&#xff08;R.Bellman&#xff09;等人在研究多階段決策過程的優化問題時&#xf…

船舶制造5G智能工廠數字孿生可視化平臺,推進船舶行業數字化轉型

船舶制造5G智能工廠數字孿生可視化平臺&#xff0c;推進船舶行業數字化轉型。隨著數字化時代的到來&#xff0c;船舶行業正面臨著前所未有的機遇與挑戰。為了適應這一變革&#xff0c;船舶制造企業需要加快數字化轉型的步伐&#xff0c;提高生產效率、降低成本并增強市場競爭力…

電氣機械5G智能工廠數字孿生可視化平臺,推進電氣機械行業數字化轉型

電氣機械5G智能工廠數字孿生可視化平臺&#xff0c;推進電氣機械行業數字化轉型。隨著科技的不斷發展&#xff0c;數字化轉型已經成為各行各業發展的重要趨勢。電氣機械行業作為傳統制造業的重要組成部分&#xff0c;也面臨著數字化轉型的挑戰和機遇。為了更好地推進電氣機械行…

就業月薪14K!兩年后漲到25K! 考研失敗后,這個95年小哥哥成功轉行軟件測試,人生開掛了!

01 考研連續失敗 因為沒有特別明確的職業規劃&#xff0c;加上內心的學歷崇拜情節。大學畢業后&#xff0c;我沒有選擇參加工作&#xff0c;而是毅然選擇了加入考研大軍。 備考的日子緊張有序&#xff0c;我也一直在題海里廢寢忘食的遨游&#xff0c;本以為能順順當當地考上自…

每日學習總結20240221

每日總結 20240221 花自飄零水自流。一種相思&#xff0c;兩處閑愁。 —— 李清照「一剪梅紅藕香殘玉簟秋」 1. stat 在Linux中&#xff0c;stat 是一個用于顯示文件或文件系統狀態的命令行工具。它提供了關于文件的詳細信息&#xff0c;包括文件類型、權限、大小、所有者、修…

Codeforces Round 490 (Div. 3)

目錄 A. Mishka and Contest B. Reversing Encryption C. Alphabetic Removals D. Equalize the Remainders E. Reachability from the Capital F. Cards and Joy A. Mishka and Contest 依照題目意思左右遍歷標記即可 void solve(){cin>>n>>m;for(int i1;i…

Windows環境下查看磁盤層級占用空間的解決方案

大家好,我是愛編程的喵喵。雙985碩士畢業,現擔任全棧工程師一職,熱衷于將數據思維應用到工作與生活中。從事機器學習以及相關的前后端開發工作。曾在阿里云、科大訊飛、CCF等比賽獲得多次Top名次。現為CSDN博客專家、人工智能領域優質創作者。喜歡通過博客創作的方式對所學的…

C++ //練習 7.48 假定Sales_data的構造函數不是explicit的,則下述定義將執行什么樣的操作?

C Primer&#xff08;第5版&#xff09; 練習 7.48 練習 7.48 假定Sales_data的構造函數不是explicit的&#xff0c;則下述定義將執行什么樣的操作&#xff1f; string null_isbn("9-999-99999-9"); Sales_data item1(null_isbn); Sales_data item2("9-999-99…

生產環境下,應用模式部署flink任務,通過hdfs提交

前言 通過通過yarn.provided.lib.dirs配置選項指定位置&#xff0c;將flink的依賴上傳到hdfs文件管理系統 1. 實踐 &#xff08;1&#xff09;生產集群為cdh集群&#xff0c;從cm上下載配置文件&#xff0c;設置環境 export HADOOP_CONF_DIR/home/conf/auth export HADOOP_CL…

前端常見面試題之react基礎

文章目錄 1. react事件為何需要bind this(1)箭頭函數(2)bind改變this指向(3)構造函數中使用箭頭函數綁定this 2. react事件和dom事件的區別3. react事件中的event參數4. react事件中的自定義參數5. 自定義參數和event參數共存6. 受控組件和非受控組件7. props實現父子組件通信1…

Android將 ViewBinding封裝到BaseActivity基類中(Java版)

在Android中使用Java語言將ViewBinding封裝到基類中&#xff0c;操作步驟如下&#xff1a; 1、在項目的build.gradle文件中啟用了ViewBinding&#xff0c;添加以下代碼&#xff1a; android {...buildFeatures {viewBinding true} } 2、創建一個名為“BaseActivity”的基類&…

vue2和vue3 setup beforecreate create生命周期時間比較

創建一個vue程序&#xff0c;vue3可以兼容Vue2的寫法&#xff0c;很流暢完全沒問題 寫了一個vue3組件 <template><div></div> </template><script lang"ts"> import {onMounted} from vue export default{data(){return {}},beforeCr…