前言
Spring框架自2002年誕生以來一直備受開發者青睞,它包括SpringMVC、SpringBoot、Spring Cloud、Spring Cloud Dataflow等解決方案。有人親切的稱之為:Spring 全家桶。
很多研發人員把spring看作心目中最好的java項目,沒有之一。所以這是重點也是難點,工作中必須會,面試時肯定考。那麼,花費10分鐘,由阿里一線架構師,帶你梳理Spring框架相關知識。
以下所整理的Spring相關面試題(含答案)、Spring全家桶實戰文檔,均可以免費分享,有需要的直接私信我【Spring】免費領取即可~
一、手撕Spring框架之面試題篇
01 Spring AOP相關面試題
- 什麼是 AOP?
- point cut,advice,Join point是什麼?
- join point 和 point cut 的區別?
- 怎麼理解面向切面編程的切面?
- 談談對SpringAOP Weaving(織入)的理解?
- 談談SpringAOP Introduction(引入)的理解?
- 講解OOP與AOP的簡單對比?
- 講解JDK 動態代理和 CGLIB 代理原理以及區別?
- 講解Spring 框架中基於 Schema 的 AOP 實現原理?
- 講解Spring 框架中如何基於 AOP 實現的事務管理?
02 Spring IOC相關面試題
- 什麼是 IOC?
- 談談對控制反轉的設計思想的理解?
- 怎麼理解 Spring IOC 容器?
- Spring 中有多少種 IOC 容器?
- Spring IOC 怎麼管理 Bean 之間的依賴關係,怎麼避免循環依賴?
- 對Spring IOC 容器的依賴注入的理解?
- 說說對Spring IOC 的單例模式和高級特性?
- BeanFactory 和 FactoryBean 有什麼區別,BeanFactory 和 ApplicationContext 又有什麼不同?
- Spring 在 Bean 創建過程中是如何解決循環依賴的?
- 談談Spring Bean 創建過程中的設計模式?
03 註解相關面試題
- 註解是一種什麼樣的編程思想?
- 為何能夠直接使用@Autowired進行依賴注入?是如何工作的?
- Spring 是如何通過@AutoWired 自動注入 Bean 屬性和 Map,List 集合的?
- @Required 是如何起到檢查xml裡面屬性有沒有被配置的?
- Spring 框架是如何把標註@Component 的 Bean 注入到容器?
- @Configuration,@ComponentScan,@Import,@Bean 註解是是如何工作的?
- 使用@PropertySource 引入配置文件,那麼配置文件裡面的配置是如何被註冊到 Spring 環境裡面的?
- 講解如何通過自定義註解實現一個簡單的樹形文檔生成?
04 事務相關面試題
- 在 XML 裡面配置了一個 SqlSessionFactoryBean 後,其究竟做了什麼?
- 在 XML 裡面配置了一個 MapperScannerConfigurer 後,其究竟做了什麼?
- 在執行 Mapper 接口的查詢方法後,發生了什麼?
- <advice>、<config> 標籤如何創建事務切面的?/<config>
- 標籤添加後為何就可以使用註解式事務了?
- 為什麼會報 Transaction rolled back because it has been marked as rollback-only 異常?
- Transactional 註解是否可以加在 private、protected 方法上?
- 事務的傳播屬性到底有什麼用,嵌套事務到底又是怎麼一回事?
- 為什麼拋出了異常,事務卻沒有回滾?
- Spring 事務是如何保證線程安全的?
05 代理模式相關面試題
- 為什麼需要代理模式?
- 講講靜態代理模式的優點及其瓶頸?
- 對Java 接口代理模式的實現原理的理解?
- 如何使用 Java 反射實現動態代理?
- Java 接口代理模式的指定增強?
- 談談對Cglib 類增強動態代理的實現?
手撕Spring框架面試題答案:
二、手撕Spring全家桶之實戰篇
01 Spring技術內幕(深入解析Spring架構與設計原理)
- 第1章 Spring的 設計理念和整體架構
- 第2章 Spring Framework的核心: IoC容器的實現
- 第3章 Spring AOP的實現
- 第4章 SpringMVC與Web環境
- 第5章 數據庫操作組件的實現
- 第6章 Spring事務處理的實現
- 第7章 Spring遠端調動的實現
- 第8章 安全框架ACEGI的設計與實現
- 第9章 Spring DM模塊的設計與實現
- 第10章 Spring Flex的設計與實現
02 SpringBoot 實戰
在過去的一年多時間裡,最讓人興奮、回頭率最高、.最能改變遊戲規則的東西,大概就是SpringBoot了。Spring Boot提供了一種新的編程範式,能在最小的阻力下開發Spring應用程序。有了它,你可以更加敏捷地開發Spring應用程序,專注於應用程序的功能,不用在Spring的配置上多花功夫,甚至完全不用配置。實際上,Spring Boot的一項重要工作就是讓Spring不再成為你成功路上的絆腳石。
- Spring入門
- 開發第一個應用程序
- 自定義配置
- 測試
- Groovy 與Spring Boot CLI
- 在Spring Boot中使用Grails
- 深入Actuator
- 部署Spring Boot應用程序
03 看透SpringMVC源代碼分析與實踐
- 第一篇 網站基礎知識
- 第二篇 俯視Spring MVC
- 第三篇 Spring MVC組件分析
- 第四篇 總結與補充
04 瘋狂Spring Cloud微服務架構實戰
- 第1章 Spring Cloud概述
- 第2章 搭建開發環境
- 第3章 微服務發佈與調用
- 第4章 負裁均衡
- 第5章 REST客戶端Feign
- 第6章 Spring Cloud的保護機制
- 第7章 微服務集群網關
- 第8章 微服務 與消息驅動
- 第9章 集群配置中心
- 第10章 微服務跟蹤
- 第11章 微服務數據庫實戰
- 第12章 案例實戰
寫在最後
對於很多開發人員來說,Java框架是Java學習路上的一大路障,而掌握Spring框架,是對一名合格開發人員的基本要求,因此,學習Spring,掌握並靈活使用,很有必要。
以上整理的所有Spring文檔,均可以免費分享。
乾貨文章,轉發+評論,關注我,然後私信【Spring】打包帶走Spring全家桶資料~
閱讀更多 技術宅愛Java 的文章