Spring是java企業(yè)級應(yīng)用的開源開發(fā)框架,在企業(yè)中應(yīng)用較多。作為輕量級的Java開發(fā)框架解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建,小編為大家總結(jié)Spring常見面試題及答案,希望可以幫助正在面試的Java程序員。
1.spring是什么?
Spring是個java企業(yè)級應(yīng)用的開源開發(fā)框架。Spring主要用來開發(fā)Java應(yīng)用,但是有些擴(kuò)展是針對構(gòu)建J2EE平臺的web應(yīng)用。Spring框架目標(biāo)是簡化Java企業(yè)級應(yīng)用開發(fā),并通過POJO為基礎(chǔ)的編程模型促進(jìn)良好的編程習(xí)慣。
2.使用Spring框架的優(yōu)點(diǎn)?
- 輕量:Spring是輕量的,基本的版本大約2MB。
- 控制反轉(zhuǎn):Spring通過控制反轉(zhuǎn)實(shí)現(xiàn)了松散耦合,對象們給出它們的依賴,而不是創(chuàng)建或查找依賴的對象們。
- 面向切面的編程(AOP):Spring支持面向切面的編程,并且把應(yīng)用業(yè)務(wù)邏輯和系統(tǒng)服務(wù)分開。
- 容器:Spring包含并管理應(yīng)用中對象的生命周期和配置。
- MVC框架:Spring的WEB框架是個精心設(shè)計(jì)的框架,是Web框架的一個很好的替代品。
- 事務(wù)管理:Spring提供一個持續(xù)的事務(wù)管理接口,可以擴(kuò)展到上至本地事務(wù)下至全局事務(wù)(JTA)。
- 異常處理:Spring提供方便的API把具體技術(shù)相關(guān)的異常(比如由JDBC,Hibernate or JDO拋出的)轉(zhuǎn)化為一致的unchecked異常。
3.Spring組成模塊有哪些?
Spring框架的基本模塊:
- Core module
- Bean module
- Context module
- expression Language module
- JDBC module
- ORM module
- OXM module
- Java Messaging Service(JMS)module
- Transaction module
- Web module
- Web-Servlet module
- Web-Struts module
- Web-Portlet module
4.核心容器模塊有哪些?
提供spring框架的基礎(chǔ)功能,BeanFactory是任何以spring為基礎(chǔ)的應(yīng)用的核心。Spring框架建立在此模塊之上,使Spring成為一個容器。
5.XMLBeanFactory
最常用的就是org.springframework.beans.factory.xml.XmlBeanFactory,它根據(jù)XML文件中的定義加載beans。該容器從XML文件讀取配置元數(shù)據(jù)并用它去創(chuàng)建一個完全配置的系統(tǒng)或應(yīng)用。
6.解釋AOP模塊是什么?
AOP模塊用于發(fā)給我們的Spring應(yīng)用做面向切面的開發(fā),很多支持由AOP聯(lián)盟提供,這樣就確保了Spring和其他AOP框架的共通性。這個模塊將元數(shù)據(jù)編程引入Spring。
7.解釋JDBC抽象和DAO模塊。
通過使用JDBC抽象和DAO模塊,保證數(shù)據(jù)庫代碼的簡潔,并能避免數(shù)據(jù)庫資源錯誤關(guān)閉導(dǎo)致的問題,它在各種不同的數(shù)據(jù)庫的錯誤信息之上,提供了一個統(tǒng)一的異常訪問層。它還利用Spring的AOP模塊給Spring應(yīng)用中的對象提供事務(wù)管理服務(wù)。
8.解釋對象/關(guān)系映射集成模塊。
Spring通過提供ORM模塊,支持我們在直接JDBC之上使用一個對象/關(guān)系映射映射(ORM)工具,Spring支持集成主流的ORM框架,如Hiberate,JDO和iBATIS SQLMaps。Spring的事務(wù)管理同樣支持以上所有ORM框架及JDBC。
9.解釋W(xué)EB模塊。
Spring的WEB模塊是構(gòu)建在application context模塊基礎(chǔ)之上,提供一個適合web應(yīng)用的上下文。這個模塊也包括支持多種面向web的任務(wù),如透明地處理多個文件上傳請求和程序級請求參數(shù)的綁定到你的業(yè)務(wù)對象。它也有對Jakarta Struts的支持。
10.Spring配置文件
Spring配置文件是個XML文件,文件包含了類信息,描述了如何配置它們,以及如何相互調(diào)用。
11.IOC的優(yōu)點(diǎn)是什么?
IOC或依賴注入把應(yīng)用的代碼量降到最低。它使應(yīng)用容易測試,單元測試不再需要單例和JNDI查找機(jī)制。最小的代價和最小的侵入性使松散耦合得以實(shí)現(xiàn)。IOC容器支持加載服務(wù)時的餓漢式初始化和懶加載。
12.ApplicationContext實(shí)現(xiàn)方式
FileSystemXmlApplicationContext:此容器從一個XML文件中加載beans的定義,XML Bean配置文件的全路徑名必須提供給它的構(gòu)造函數(shù)。ClassPathXmlApplicationContext:此容器也從一個XML文件中加載beans的定義,這里,你需要正確設(shè)置classpath因?yàn)檫@個容器將在classpath里找bean配置。WebXmlApplicationContext:此容器加載一個XML文件,此文件定義了一個WEB應(yīng)用的所有bean。
13.Spring依賴注入是什么?
依賴注入是IOC的一個方面,有多種解釋。這概念是說你不用創(chuàng)建對象,而只需要描述它如何被創(chuàng)建。你不在代碼里直接組裝你的組件和服務(wù),但是要在配置文件里描述哪些組件需要哪些服務(wù),之后一個容器(IOC容器)負(fù)責(zé)把他們組裝起來。
14.有哪些不同類型的IOC依賴注入方式?
構(gòu)造器依賴注入:構(gòu)造器依賴注入通過容器觸發(fā)一個類的構(gòu)造器來實(shí)現(xiàn)的,該類有一系列參數(shù),每個參數(shù)代表一個對其他類的依賴。
Setter方法注入:Setter方法注入是容器通過調(diào)用無參構(gòu)造器或無參static工廠方法實(shí)例化bean之后,調(diào)用該bean的setter方法,即實(shí)現(xiàn)了基于setter的依賴注入。
15.Spring容器配置元數(shù)據(jù)?
Spring容器提供配置元數(shù)據(jù)
XML配置文件;基于注解的配置;基于java的配置。
以上就是長沙牛耳教育java培訓(xùn)機(jī)構(gòu)的小編針對“Java筆試面試題:Spring常見面試題及答案分享”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時為你服務(wù)。
Java筆試題