您好,登錄后才能下訂單哦!
Spring是java企業(yè)級(jí)應(yīng)用的開源開發(fā)框架,在企業(yè)中應(yīng)用較多。作為輕量級(jí)的Java開發(fā)框架解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建,今天小編分享的是一份關(guān)于Java開發(fā)Spring常見面試題及答案集合,很多人都不太了解,今天小編為了讓大家更加了解Java開發(fā),所以給大家總結(jié)了以下內(nèi)容,一起往下看吧。
Spring常見面試題及答案分享:
一、spring是什么?
Spring是個(gè)java企業(yè)級(jí)應(yīng)用的開源開發(fā)框架。Spring主要用來開發(fā)Java應(yīng)用,但是有些擴(kuò)展是針對構(gòu)建J2EE平臺(tái)的web應(yīng)用。Spring框架目標(biāo)是簡化Java企業(yè)級(jí)應(yīng)用開發(fā),并通過POJO為基礎(chǔ)的編程模型促進(jìn)良好的編程習(xí)慣。
二、使用Spring框架的好處?
輕量: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框架是個(gè)精心設(shè)計(jì)的框架,是Web框架的一個(gè)很好的替代品。
事務(wù)管理:Spring提供一個(gè)持續(xù)的事務(wù)管理接口,可以擴(kuò)展到上至本地事務(wù)下至全局事務(wù)(JTA)。
異常處理:Spring提供方便的API把具體技術(shù)相關(guān)的異常(比如由JDBC,Hibernate or JDO拋出的)轉(zhuǎn)化為一致的unchecked異常。
三、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
四、核心容器模塊有哪些?
提供spring框架的基礎(chǔ)功能,BeanFactory是 任何以spring為基礎(chǔ)的應(yīng)用的核心。Spring框架建立在此模塊之上,使Spring成為一個(gè)容器。
五、XMLBeanFactory
最常用的就是org.springframework.beans.factory.xml.XmlBeanFactory,它根據(jù)XML文件中的定義加載beans。該容器從XML文件讀取配置元數(shù)據(jù)并用它去創(chuàng)建一個(gè)完全配置的系統(tǒng)或應(yīng)用。
六、解釋AOP模塊是什么?
AOP模塊用于發(fā)給我們的Spring應(yīng)用做面向切面的開發(fā), 很多支持由AOP聯(lián)盟提供,這樣就確保了Spring和其他AOP框架的共通性。這個(gè)模塊將元數(shù)據(jù)編程引入Spring。
七、解釋JDBC抽象和DAO模塊。
通過使用JDBC抽象和DAO模塊,保證數(shù)據(jù)庫代碼的簡潔,并能避免數(shù)據(jù)庫資源錯(cuò)誤關(guān)閉導(dǎo)致的問題,它在各種不同的數(shù)據(jù)庫的錯(cuò)誤信息之上,提供了一個(gè)統(tǒng)一的異常訪問層。它還利用Spring的AOP模塊給Spring應(yīng)用中的對象提供事務(wù)管理服務(wù)。
八、解釋對象/關(guān)系映射集成模塊。
Spring通過提供ORM模塊,支持我們在直接JDBC之上使用一個(gè)對象/關(guān)系映射映射(ORM)工具,Spring支持集成主流的ORM框架,如Hiberate,JDO和iBATIS SQL Maps。Spring的事務(wù)管理同樣支持以上所有ORM框架及JDBC。
九、解釋W(xué)EB模塊。
Spring的WEB模塊是構(gòu)建在application context模塊基礎(chǔ)之上,提供一個(gè)適合web應(yīng)用的上下文。這個(gè)模塊也包括支持多種面向web的任務(wù),如透明地處理多個(gè)文件上傳請求和程序級(jí)請求參數(shù)的綁定到你的業(yè)務(wù)對象。它也有對Jakarta Struts的支持。
十、Spring配置文件
Spring配置文件是個(gè)XML文件,文件包含了類信息,描述了如何配置它們,以及如何相互調(diào)用。
十一、IOC的優(yōu)點(diǎn)是什么?
IOC或 依賴注入把應(yīng)用的代碼量降到最低。它使應(yīng)用容易測試,單元測試不再需要單例和JNDI查找機(jī)制。最小的代價(jià)和最小的侵入性使松散耦合得以實(shí)現(xiàn)。IOC容器支持加載服務(wù)時(shí)的餓漢式初始化和懶加載。
十二、ApplicationContext實(shí)現(xiàn)方式
FileSystemXmlApplicationContext:此容器從一個(gè)XML文件中加載beans的定義,XML Bean配置文件的全路徑名必須提供給它的構(gòu)造函數(shù)。ClassPathXmlApplicationContext:此容器也從一個(gè)XML文件中加載beans的定義,這里,你需要正確設(shè)置classpath因?yàn)檫@個(gè)容器將在classpath里找bean配置。WebXmlApplicationContext:此容器加載一個(gè)XML文件,此文件定義了一個(gè)WEB應(yīng)用的所有bean。
十三、Spring依賴注入是什么?
依賴注入是IOC的一個(gè)方面,有多種解釋。這概念是說你不用創(chuàng)建對象,而只需要描述它如何被創(chuàng)建。你不在代碼里直接組裝你的組件和服務(wù),但是要在配置文件里描述哪些組件需要哪些服務(wù),之后一個(gè)容器(IOC容器)負(fù)責(zé)把他們組裝起來。
十四、有哪些不同類型的IOC依賴注入方式?
構(gòu)造器依賴注入:構(gòu)造器依賴注入通過容器觸發(fā)一個(gè)類的構(gòu)造器來實(shí)現(xiàn)的,該類有一系列參數(shù),每個(gè)參數(shù)代表一個(gè)對其他類的依賴。
Setter方法注入:Setter方法注入是容器通過調(diào)用無參構(gòu)造器或無參static工廠 方法實(shí)例化bean之后,調(diào)用該bean的setter方法,即實(shí)現(xiàn)了基于setter的依賴注入。
十五、Spring容器配置元數(shù)據(jù)?
Spring容器提供配置元數(shù)據(jù)
XML配置文件;基于注解的配置;基于java的配置。
十六、定義類的作用域?
當(dāng)定義一個(gè)<bean>在Spring里,我們還能給這個(gè)bean聲明一個(gè)作用域。它可以通過bean定義中的scope屬性來定義。如,當(dāng)Spring要在需要的時(shí)候每次生產(chǎn)一個(gè)新的bean實(shí)例,bean的scope屬性被指定為prototype。另一方面,一個(gè)bean每次使用的時(shí)候必須返回同一個(gè)實(shí)例,這個(gè)bean的scope屬性 必須設(shè)為singleton。
十七、Spring內(nèi)部bean是什么?
當(dāng)一個(gè)bean僅被用作另一個(gè)bean的屬性時(shí),它能被聲明為一個(gè)內(nèi)部bean,為了定義inner bean,在Spring的 基于XML的 配置元數(shù)據(jù)中,可以在<property/>或<constructor-arg/>元素內(nèi)使用<bean/>元素,內(nèi)部bean通常是匿名的,它們的Scope一般是prototype。
十八、在Spring中如何注入一個(gè)java集合?
Spring提供以下幾種集合的配置元素:
<list>類型用于注入一列值,允許有相同的值。
<set>類型用于注入一組值,不允許有相同的值。
<map>類型用于注入一組鍵值對,鍵和值都可以為任意類型。
<props>類型用于注入一組鍵值對,鍵和值都只能為String類型。
以上就是Java開發(fā)Spring常見面試題及答案的簡略介紹,當(dāng)然詳細(xì)使用上面的不同還得要大家自己使用過才領(lǐng)會(huì)。如果想了解更多,歡迎關(guān)注億速云行業(yè)資訊頻道哦!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。