大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

第一部分 Java基礎(chǔ)
第二部分 Java進(jìn)階

Java spring面試題及答案(12~44題)

12、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)用。

13、解釋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模塊。

14、簡單介紹一下SpringWEB模塊?

Spring的WEB模塊是構(gòu)建在applicationcontext模塊基礎(chǔ)之上,提供一個適合web應(yīng)用的上下文。這個模塊也包括支持多種面向web的任務(wù),如透明地處理多個文件上傳請求和程序級請求參數(shù)的綁定到你的業(yè)務(wù)對象。它也有對JakartaStruts的支持。

15、Spring配置文件有什么作用?

Spring配置文件是個XML文件,這個文件包含了類信息,描述了如何配置它們,以及如何相互調(diào)用。

16、什么是SpringIOC容器?

IOC控制反轉(zhuǎn):SpringIOC負(fù)責(zé)創(chuàng)建對象,管理對象。通過依賴注入(DI),裝配對象,配置對象,并且管理這些對象的整個生命周期。

17、IOC的優(yōu)點是什么?

IOC或依賴注入把應(yīng)用的代碼量降到最低。它使應(yīng)用容易測試,單元測試不再需要單例和JNDI查找機(jī)制。最小的代價和最小的侵入性使松散耦合得以實現(xiàn)。IOC容器支持加載服務(wù)時的餓漢式初始化和懶加載。

18、ApplicationContext的實現(xiàn)類有哪些?

FileSystemXmlApplicationContext:此容器從一個XML文件中加載beans的定義,XMLBean配置文件的全路徑名必須提供給它的構(gòu)造函數(shù)。

ClassPathXmlApplicationContext:此容器也從一個XML文件中加載beans的定義,這里,你需要正確設(shè)置classpath因為這個容器將在classpath里找bean配置。

WebXmlApplicationContext:此容器加載一個XML文件,此文件定義了一個WEB應(yīng)用的所有bean。

19、BeanFactory與AppliacationContext有什么區(qū)別?

● BeanFactory

基礎(chǔ)類型的IOC容器,提供完成的IOC服務(wù)支持。如果沒有特殊指定,默認(rèn)采用延遲初始化策略。相對來說,容器啟動初期速度較快,所需資源有限。

● ApplicationContext

ApplicationContext是在BeanFactory的基礎(chǔ)上構(gòu)建,是相對比較高級的容器實現(xiàn),除了BeanFactory的所有支持外,ApplicationContext還提供了事件發(fā)布、國際化支持等功能。ApplicationContext管理的對象,在容器啟動后默認(rèn)全部初始化并且綁定完成。

20、什么是Spring的依賴注入?

平常的java開發(fā)中,程序員在某個類中需要依賴其它類的方法,則通常是new一個依賴類再調(diào)用類實例的方法,這種開發(fā)存在的問題是new的類實例不好統(tǒng)一管理,spring提出了依賴注入的思想,即依賴類不由程序員實例化,而是通過spring容器幫我們new指定實例并且將實例注入到需要該對象的類中。依賴注入的另一種說法是“控制反轉(zhuǎn)”,通俗的理解是:平常我們new一個實例,這個實例的控制權(quán)是我們程序員,而控制反轉(zhuǎn)是指new實例工作不由我們程序員來做而是交給spring容器來做。

21、有哪些不同類型的IOC(依賴注入)方式?

Spring提供了多種依賴注入的方式。

● set注入

● 構(gòu)造器注入

● 靜態(tài)工廠的方法注入

● 實例工廠的方法注入

22、什么是Springbeans?

Springbeans是那些形成Spring應(yīng)用的主干的java對象。它們被SpringIOC容器初始化,裝配,和管理。這些beans通過容器中配置的元數(shù)據(jù)創(chuàng)建。比如,以XML文件中<bean/>的形式定義。Spring框架定義的beans都是單例beans。

23、一個SpringBeans的定義需要包含什么?

一個SpringBean的定義包含容器必知的所有配置元數(shù)據(jù),包括如何創(chuàng)建一個bean,它的生命周期詳情及它的依賴。

24、你怎樣定義類的作用域?

當(dāng)定義一個<bean>在Spring里,我們還能給這個bean聲明一個作用域。它可以通過bean定義中的scope屬性來定義。如,當(dāng)Spring要在需要的時候每次生產(chǎn)一個新的bean實例,bean的scope屬性被指定為prototype。另一方面,一個bean每次使用的時候必須返回同一個實例,這個bean的scope屬性必須設(shè)為singleton。

25、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。

26、Spring框架中的單例bean是線程安全的嗎?

Spring框架中的單例bean不是線程安全的。

27、什么是Spring的內(nèi)部bean?

當(dāng)一個bean僅被用作另一個bean的屬性時,它能被聲明為一個內(nèi)部bean,為了定義innerbean,在Spring的基于XML的配置元數(shù)據(jù)中,可以在<property/>或<constructor-arg/>元素內(nèi)使用<bean/>元素,內(nèi)部bean通常是匿名的,它們的Scope一般是prototype。

???????28、在Spring中如何注入一個java集合?

Spring提供以下幾種集合的配置元素:

● <list>類型用于注入一列值,允許有相同的值。

● <set>類型用于注入一組值,不允許有相同的值。

● <map>類型用于注入一組鍵值對,鍵和值都可以為任意類型。

● <props>類型用于注入一組鍵值對,鍵和值都只能為String類型。

29、什么是bean的自動裝配?

無須在Spring配置文件中描述javaBean之間的依賴關(guān)系(如配置<property>、<constructor-arg>)。IOC容器會自動建立javabean之間的關(guān)聯(lián)關(guān)系。

???????30、解釋不同方式的自動裝配?

有五種自動裝配的方式,可以用來指導(dǎo)Spring容器用自動裝配方式來進(jìn)行依賴注入。

● no:默認(rèn)的方式是不進(jìn)行自動裝配,通過顯式設(shè)置ref屬性來進(jìn)行裝配。

● byName:通過參數(shù)名自動裝配,Spring容器在配置文件中發(fā)現(xiàn)bean的autowire屬性被設(shè)置成byname,之后容器試圖匹配、裝配和該bean的屬性具有相同名字的bean。

● byType::通過參數(shù)類型自動裝配,Spring容器在配置文件中發(fā)現(xiàn)bean的autowire屬性被設(shè)置成byType,之后容器試圖匹配、裝配和該bean的屬性具有相同類型的bean。如果有多個bean符合條件,則拋出錯誤。

● constructor:這個方式類似于byType,但是要提供給構(gòu)造器參數(shù),如果沒有確定的帶參數(shù)的構(gòu)造器參數(shù)類型,將會拋出異常。

● autodetect:首先嘗試使用constructor來自動裝配,如果無法工作,則使用byType方式。???????

31、什么是基于Java的Spring注解配置?

基于Java的配置,允許你在少量的Java注解的幫助下,進(jìn)行你的大部分Spring配置而非通過XML文件。以@Configuration注解為例,它用來標(biāo)記類可以當(dāng)做一個bean的定義,被SpringIOC容器使用。另一個例子是@Bean注解,它表示此方法將要返回一個對象,作為一個bean注冊進(jìn)Spring應(yīng)用上下文。

???????32、什么是基于注解的容器配置?

相對于XML文件,注解型的配置依賴于通過字節(jié)碼元數(shù)據(jù)裝配組件,而非尖括號的聲明。開發(fā)者通過在相應(yīng)的類,方法或?qū)傩陨鲜褂米⒔獾姆绞?,直接組件類中進(jìn)行配置,而不是使用xml表述bean的裝配關(guān)系。

???????33、怎樣開啟注解裝配?

注解裝配在默認(rèn)情況下是不開啟的,為了使用注解裝配,我們必須在Spring配置文件中配置<context:annotation-config/>元素。

???????34、在Spring框架中如何更有效地使用JDBC?

使用SpringJDBC框架,資源管理和錯誤處理的代價都會被減輕。所以開發(fā)者只需寫statements和queries從數(shù)據(jù)存取數(shù)據(jù),JDBC也可以在Spring框架提供的模板類的幫助下更有效地被使用,這個模板叫JdbcTemplate。JdbcTemplate類提供了很多便利的方法解決諸如把數(shù)據(jù)庫數(shù)據(jù)轉(zhuǎn)變成基本數(shù)據(jù)類型或?qū)ο?,?zhí)行寫好的或可調(diào)用的數(shù)據(jù)庫操作語句,提供自定義的數(shù)據(jù)錯誤處理。

???????35、使用Spring通過什么方式訪問Hibernate?

在Spring中有兩種方式訪問Hibernate:

● 控制反轉(zhuǎn):HibernateTemplate和Callback。

● 繼承HibernateDAOSupport提供一個AOP攔截器。

36、Spring支持的ORM框架有哪些?

Spring支持以下ORM框架:

● Hibernate

● MyBatis

● JPA (Java Persistence API)

● TopLink

● JDO (Java Data Objects)

● OJB

37、簡單解釋一下Spring的AOP?

AOP(Aspect Oriented Programming),即面向切面編程,可以說是OOP(Object Oriented Programming,面向?qū)ο缶幊蹋┑难a(bǔ)充和完善。OOP引入封裝、繼承、多態(tài)等概念來建立一種對象層次結(jié)構(gòu),用于模擬公共行為的一個集合。不過OOP允許開發(fā)者定義縱向的關(guān)系,但并不適合定義橫向的關(guān)系,例如日志功能。日志代碼往往橫向地散布在所有對象層次中,而與它對應(yīng)的對象的核心功能毫無關(guān)系。對于其他類型的代碼,如安全性、異常處理和透明的持續(xù)性也都是如此。這種散布在各處的無關(guān)的代碼被稱為橫切(cross cutting),在OOP設(shè)計中,它導(dǎo)致了大量代碼的重復(fù),而不利于各個模塊的重用。

AOP技術(shù)恰恰相反,它利用一種稱為“橫切”的技術(shù),剖解開封裝的對象內(nèi)部,并將那些影響了多個類的公共行為封裝到一個可重用模塊,并將其命名為“Aspect”,即切面。所謂“切面”,簡單說就是那些與業(yè)務(wù)無關(guān),卻為業(yè)務(wù)模塊所共同調(diào)用的邏輯或責(zé)任封裝起來,便于減少系統(tǒng)的重復(fù)代碼,降低模塊之間的耦合度,并有利于未來的可操作性和可維護(hù)性。使用“橫切”技術(shù),AOP把軟件系統(tǒng)分為兩個部分:核心關(guān)注點和橫切關(guān)注點。業(yè)務(wù)處理的主要流程是核心關(guān)注點,與之關(guān)系不大的部分是橫切關(guān)注點。橫切關(guān)注點的一個特點是,他們經(jīng)常發(fā)生在核心關(guān)注點的多處,而各處基本相似,比如權(quán)限認(rèn)證、日志、事物。AOP的作用在于分離系統(tǒng)中的各種關(guān)注點,將核心關(guān)注點和橫切關(guān)注點分離開來。AOP核心就是切面,它將多個類的通用行為封裝成可重用的模塊,該模塊含有一組API提供橫切功能。比如,一個日志模塊可以被稱作日志的AOP切面。根據(jù)需求的不同,一個應(yīng)用程序可以有若干切面。在Spring AOP中,切面通過帶有@Aspect注解的類實現(xiàn)。

???????38、在Spring AOP中,關(guān)注點和橫切關(guān)注的區(qū)別是什么?

關(guān)注點是應(yīng)用中一個模塊的行為,一個關(guān)注點可能會被定義成一個我們想實現(xiàn)的一個功能。橫切關(guān)注點是一個關(guān)注點,此關(guān)注點是整個應(yīng)用都會使用的功能,并影響整個應(yīng)用,比如日志,安全和數(shù)據(jù)傳輸,幾乎應(yīng)用的每個模塊都需要的功能。因此這些都屬于橫切關(guān)注點。

???????39、什么是連接點?

被攔截到的點,因為Spring只支持方法類型的連接點,所以在Spring中連接點指的就是被攔截到的方法,實際上連接點還可以是字段或者構(gòu)造器。

???????40、Spring的通知是什么?有哪幾種類型?

通知是個在方法執(zhí)行前或執(zhí)行后要做的動作,實際上是程序執(zhí)行時要通過SpringAOP框架觸發(fā)的代碼段。

Spring切面可以應(yīng)用五種類型的通知:

● before:前置通知,在一個方法執(zhí)行前被調(diào)用。

● after:在方法執(zhí)行之后調(diào)用的通知,無論方法執(zhí)行是否成功。

● after-returning:僅當(dāng)方法成功完成后執(zhí)行的通知。

● after-throwing:在方法拋出異常退出時執(zhí)行的通知。

● around:在方法執(zhí)行之前和之后調(diào)用的通知。

41、什么是切入點?

切入點是一個或一組連接點,通知將在這些位置執(zhí)行。可以通過表達(dá)式或匹配的方式指明切入點。

???????42、什么是目標(biāo)對象?

被一個或者多個切面所通知的對象。它通常是一個代理對象。也指被通知(advised)對象。

???????43、什么是代理?

代理是通知目標(biāo)對象后創(chuàng)建的對象。從客戶端的角度看,代理對象和目標(biāo)對象是一樣的。

???????44、什么是織入?什么是織入應(yīng)用的不同點????????

把切面(aspect)連接到其它的應(yīng)用程序類型或者對象上,并創(chuàng)建一個被通知(advised)的對象,這樣的行為叫做織入??椚肟梢栽诰幾g時,加載時,或運(yùn)行時完成。??????????????

全部教程
主站蜘蛛池模板: 国产精品亚洲精品久久成人 | 狠狠操天天 | 一级片影院 | 亚洲视频在线观看视频 | 欧美日本免费观看αv片 | 国产激情一区二区三区在线观看 | 91亚洲影院 | 免费视频一区二区性色 | 狠狠艹| 四虎影视在线永久免费看黄 | 日韩精品福利视频一区二区三区 | 男女污污视频在线观看 | 黄色毛片在线播放 | 91尤物视频| 老司机激情影院 | 欧美日韩国产成人综合在线 | 久久线看观看精品香蕉国产 | 国产1769一七六九视频在线 | 国产深夜福利视频在线观看 | 成人久久精品 | 一级毛片免费高清视频 | 99久久精品免费看国产免费 | 日日摸日日添日日透 | 亚洲欧美精品成人久久91 | 久久久日韩精品国产成人 | 欧美一级毛片aaaaa | 国产亚洲美女精品久久久2020 | 末成年娇小性色xxxxx视频 | 一级特级欧美午夜片免费观看 | 人成xxxwww免费视频 | 欧美黄色免费在线观看 | 一区二区在线免费观看 | 精品国产乱码一区二区三区麻豆 | 成人中文字幕一区二区三区 | 国产偷视频| 手机看片高清国产日韩片 | 成年人香蕉视频 | 日本边添边爱边做视频 | 一级毛片在线播放免费 | 四虎影视www四虎免费 | 五月天丁香婷婷综合久久 |