更新時間:2022-12-08 16:15:24 來源:動力節(jié)點 瀏覽1243次
今天我們就來談?wù)勱P(guān)于求職就業(yè)的話題,求職是每一個技術(shù)人員生涯中都會經(jīng)歷多次的,對于我們大部分人來說,想要進(jìn)入自己心儀的企業(yè)就需要提前作出準(zhǔn)備,一份比較靠譜的面試題能夠幫助我們減少很多的麻煩,能夠讓我們在求職或者跳槽期間順利一些。這份spring面試題供大家參考:
1.BeanFactory常用的實現(xiàn)類有哪些?
Bean工廠是工廠模式的一個實現(xiàn),提供了控制反轉(zhuǎn)功能,用來把應(yīng)用的配置和依賴從正真的應(yīng)用代碼中分離。常用的BeanFactory實現(xiàn)有DefaultListableBeanFactory、XmlBeanFactory、ApplicationContext等。XMLBeanFactory,最常用的就是org.springframework.beans.factory.xml.XmlBeanFactory,它根據(jù)XML文件中的定義加載beans。該容器從XML文件讀取配置元數(shù)據(jù)并用它去創(chuàng)建一個完全配置的系統(tǒng)或應(yīng)用。
2.解釋SpringJDBC、SpringDAO和SpringORM?
Spring-DAO并非Spring的一個模塊,它實際上是指示你寫DAO操作、寫好DAO操作的一些規(guī)范。因此,對于訪問你的數(shù)據(jù)它既沒有提供接口也沒有提供實現(xiàn)更沒有提供模板。在寫一個DAO的時候,你應(yīng)該使用@Repository對其進(jìn)行注解,這樣底層技術(shù)(JDBC,Hibernate,JPA,等等)的相關(guān)異常才能一致性地翻譯為相應(yīng)的DataAccessException子類。
Spring-JDBC提供了Jdbc模板類,它移除了連接代碼以幫你專注于SQL查詢和相關(guān)參數(shù)。Spring-JDBC還提供了一個JdbcDaoSupport,這樣你可以對你的DAO進(jìn)行擴(kuò)展開發(fā)。它主要定義了兩個屬性:一個DataSource和一個JdbcTemplate,它們都可以用來實現(xiàn)DAO方法。JdbcDaoSupport還提供了一個將SQL異常轉(zhuǎn)換為SpringDataAccessExceptions的異常翻譯器。
Spring-ORM是一個囊括了很多持久層技術(shù)(JPA,JDO,Hibernate,iBatis)的總括模塊。對于這些技術(shù)中的每一個,Spring都提供了集成類,這樣每一種技術(shù)都能夠在遵循Spring的配置原則下進(jìn)行使用,并平穩(wěn)地和Spring事務(wù)管理進(jìn)行集成。
對于每一種技術(shù),配置主要在于將一個DataSourcebean注入到某種SessionFactory或者EntityManagerFactory等bean中。純JDBC不需要這樣的一個集成類(JdbcTemplate除外),因為JDBC僅依賴于一個DataSource。
如果你計劃使用一種ORM技術(shù),比如JPA或者Hibernate,那么你就不需要Spring-JDBC模塊了,你需要的是這個Spring-ORM模塊。
3.簡單介紹一下SpringWEB模塊?
Spring的WEB模塊是構(gòu)建在applicationcontext模塊基礎(chǔ)之上,提供一個適合web應(yīng)用的上下文。這個模塊也包括支持多種面向web的任務(wù),如透明地處理多個文件上傳請求和程序級請求參數(shù)的綁定到你的業(yè)務(wù)對象。它也有對JakartaStruts的支持。
4.Spring配置文件有什么作用?
Spring配置文件是個XML文件,這個文件包含了類信息,描述了如何配置它們,以及如何相互調(diào)用。
5.什么是SpringIOC容器?
IOC控制反轉(zhuǎn):SpringIOC負(fù)責(zé)創(chuàng)建對象,管理對象。通過依賴注入(DI),裝配對象,配置對象,并且管理這些對象的整個生命周期。
6.IOC的優(yōu)點是什么?
IOC或依賴注入把應(yīng)用的代碼量降到最低。它使應(yīng)用容易測試,單元測試不再需要單例和JNDI查找機(jī)制。最小的代價和最小的侵入性使松散耦合得以實現(xiàn)。IOC容器支持加載服務(wù)時的餓漢式初始化和懶加載。
7.ApplicationContext的實現(xiàn)類有哪些?
FileSystemXmlApplicationContext:此容器從一個XML文件中加載beans的定義,XMLBean配置文件的全路徑名必須提供給它的構(gòu)造函數(shù)。
ClassPathXmlApplicationContext:此容器也從一個XML文件中加載beans的定義,這里,你需要正確設(shè)置classpath因為這個容器將在classpath里找bean配置。
WebXmlApplicationContext:此容器加載一個XML文件,此文件定義了一個WEB應(yīng)用的所有bean。
8.BeanFactory與AppliacationContext有什么區(qū)別?
● BeanFactory
基礎(chǔ)類型的IOC容器,提供完成的IOC服務(wù)支持。如果沒有特殊指定,默認(rèn)采用延遲初始化策略。相對來說,容器啟動初期速度較快,所需資源有限。
● ApplicationContext
ApplicationContext是在BeanFactory的基礎(chǔ)上構(gòu)建,是相對比較高級的容器實現(xiàn),除了BeanFactory的所有支持外,ApplicationContext還提供了事件發(fā)布、國際化支持等功能。ApplicationContext管理的對象,在容器啟動后默認(rèn)全部初始化并且綁定完成。
9.什么是Spring的依賴注入?
平常的java開發(fā)中,程序員在某個類中需要依賴其它類的方法,則通常是new一個依賴類再調(diào)用類實例的方法,這種開發(fā)存在的問題是new的類實例不好統(tǒng)一管理,spring提出了依賴注入的思想,即依賴類不由程序員實例化,而是通過spring容器幫我們new指定實例并且將實例注入到需要該對象的類中。依賴注入的另一種說法是“控制反轉(zhuǎn)”,通俗的理解是:平常我們new一個實例,這個實例的控制權(quán)是我們程序員,而控制反轉(zhuǎn)是指new實例工作不由我們程序員來做而是交給spring容器來做。
10.有哪些不同類型的IOC(依賴注入)方式?
Spring提供了多種依賴注入的方式。
● set注入
● 構(gòu)造器注入
● 靜態(tài)工廠的方法注入
● 實例工廠的方法注入
11.什么是Springbeans?
Springbeans是那些形成Spring應(yīng)用的主干的java對象。它們被SpringIOC容器初始化,裝配,和管理。這些beans通過容器中配置的元數(shù)據(jù)創(chuàng)建。比如,以XML文件中的形式定義。Spring框架定義的beans都是單例beans。
12.一個SpringBeans的定義需要包含什么?
一個SpringBean的定義包含容器必知的所有配置元數(shù)據(jù),包括如何創(chuàng)建一個bean,它的生命周期詳情及它的依賴。
13.你怎樣定義類的作用域?
當(dāng)定義一個在Spring里,我們還能給這個bean聲明一個作用域。它可以通過bean定義中的scope屬性來定義。如,當(dāng)Spring要在需要的時候每次生產(chǎn)一個新的bean實例,bean的scope屬性被指定為prototype。另一方面,一個bean每次使用的時候必須返回同一個實例,這個bean的scope屬性必須設(shè)為singleton。
14.Spring支持bean的作用域有幾種?
Spring框架支持以下五種bean的作用域:
● singleton:bean在每個Springioc容器中只有一個實例。
● prototype:一個bean的定義可以有多個實例。
● request:每次http請求都會創(chuàng)建一個bean,該作用域僅在基于web的SpringApplicationContext情形下有效。
● session:在一個HTTPSession中,一個bean定義對應(yīng)一個實例。該作用域僅在基于web的SpringApplicationContext情形下有效。
● global-session:在一個全局的HTTPSession中,一個bean定義對應(yīng)一個實例。該作用域僅在基于web的SpringApplicationContext情形下有效。缺省的Springbean的作用域是Singleton。
以上就是“新形全面Spring面試題及答案”,你能回答上來嗎?如果想要了解更多的Java面試題相關(guān)內(nèi)容,可以關(guān)注動力節(jié)點Java官網(wǎng)。
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743