標籤:面向切面 path 架構 lock spring架構 異常處理 實現 習慣 分享
本文是通過收集網上各種面試指南題目及答案然後經過整理歸納而來,僅僅是為了方便以後回顧,無意冒犯各位原創作者。
1. 什麼是Spring?
Spring 是個java企業級應用的開源開發架構。Spring主要用來開發Java應用,但是有些擴充是針對構建J2EE平台的web應用。Spring 架構目標是簡化Java企業級應用開發,並通過POJO為基礎的編程模型促進良好的編程習慣。
2. 使用Spring架構的好處?
- 輕量:Spring 是輕量的,基本的版本大約2MB。
- 控制反轉:Spring通過控制反轉實現了鬆散耦合,對象們給出它們的依賴,而不是建立或尋找依賴的對象們。
- 面向切面的編程(AOP):Spring支援面向切面的編程,並且把應用商務邏輯和系統服務分開。
- 容器:Spring 包含並管理應用中對象的生命週期和配置。
- MVC架構:Spring的WEB架構是個精心設計的架構,是Web架構的一個很好的替代品。
- 交易管理:Spring 提供一個持續的交易管理介面,可以擴充到上至本地事務下至全域事務(JTA)。
- 異常處理:Spring 提供方便的API把具體技術相關的異常(比如由JDBC,Hibernate or JDO拋出的)轉化為一致的unchecked 異常。
3. Spring 架構都有哪些模組
- Spring核心容器:容器是Spring架構最核心的部分,它管理著Spring應用中Bean的建立、配置和管理。
- Spring AOP模組:在此模組中,Spring對面向切面編程提供了豐富的支援。
- 資料訪問與整合
- Web與遠程調用
- Instrumentation
- 測試
4. BeanFactory 和 ApplicationContext 有什麼區別?
BeanFactory 和 ApplicationContext 是Spring容器的不同實現,Spring容器負責建立對象,裝配它們,配置它們並管理它們的整個生命週期。
BeanFactory是最簡單的容器,提供基本的DI支援;ApplicationContext基於BeanFactory構建,並提供應用程式框架層級的服務,例如從屬性檔案解析文本資訊以及發布應用時間給感興趣的事件監聽者。
5. 常見的ApplicationContext實現方式?
- AnnotationConfigApplicationContext:從一個或多個基於Java的配置類中載入Spring應用上下文。
ApplicationContext context = new AnnotationConfigApplicationContext(com.springinaction.server.config.ServerConfig.class);
- ClassPathXmlApplicationContext:從類路徑下的一個或多個XML設定檔中載入上下文定義,把應用內容相關的定義檔案作為類資源。
ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
- FileSystemXmlApplicationContext:從檔案系統下的一個或多個XML設定檔中載入上下文定義。
ApplicationContext context = new FileSystemXmlApplicationContext("c:/bean.xml");
- XmlWebApplicationContext:從Web應用下的一個或多個XML設定檔中載入上下文定義。
Spring常見面試題