1. 程式人生 > >2019年一線大廠春招:Spring面試題和答案合集(下篇)

2019年一線大廠春招:Spring面試題和答案合集(下篇)

開發十年,就只剩下這套架構體系了! >>>   

其他面試答案參考:2019年一線大廠春招:Spring面試題和答案合集(上篇)

 

35. @RequestMapping 註解

該註解是用來對映一個URL到一個類或一個特定的方處理法上。

36. 什麼是基於Java的Spring註解配置? 給一些註解的例子.

基於Java的配置,允許你在少量的Java註解的幫助下,進行你的大部分Spring配置而非通過XML檔案。

以@Configuration 註解為例,它用來標記類可以當做一個bean的定義,被Spring IOC容器使用。另一個例子是@Bean註解,它表示此方法將要返回一個物件,作為一個bean註冊進Spring應用上下文。

37. 什麼是基於註解的容器配置?

相對於XML檔案,註解型的配置依賴於通過位元組碼元資料裝配元件,而非尖括號的宣告。

開發者通過在相應的類,方法或屬性上使用註解的方式,直接元件類中進行配置,而不是使用xml表述bean的裝配關係。

38. 怎樣開啟註解裝配?

註解裝配在預設情況下是不開啟的,為了使用註解裝配,我們必須在Spring配置檔案中配置 <context:annotation-config/>元素。

39. @Required 註解

這個註解表明bean的屬性必須在配置的時候設定,通過一個bean定義的顯式的屬性值或通過自動裝配,若@Required註解的bean屬性未被設定,容器將丟擲BeanInitializationException。

40. @Autowired 註解

@Autowired 註解提供了更細粒度的控制,包括在何處以及如何完成自動裝配。它的用法和@Required一樣,修飾setter方法、構造器、屬性或者具有任意名稱和/或多個引數的PN方法。

41. @Qualifier 註解

當有多個相同型別的bean卻只有一個需要自動裝配時,將@Qualifier 註解和@Autowire 註解結合使用以消除這種混淆,指定需要裝配的確切的bean。

42.在Spring框架中如何更有效地使用JDBC?

使用SpringJDBC 框架,資源管理和錯誤處理的代價都會被減輕。所以開發者只需寫statements 和 queries從資料存取資料,JDBC也可以在Spring框架提供的模板類的幫助下更有效地被使用,這個模板叫JdbcTemplate (例子見這裡here)

43. JdbcTemplate

JdbcTemplate 類提供了很多便利的方法解決諸如把資料庫資料轉變成基本資料型別或物件,執行寫好的或可呼叫的資料庫操作語句,提供自定義的資料錯誤處理。

44. Spring對DAO的支援

Spring對資料訪問物件(DAO)的支援旨在簡化它和資料訪問技術如JDBC,Hibernate or JDO 結合使用。這使我們可以方便切換持久層。編碼時也不用擔心會捕獲每種技術特有的異常。

45. 使用Spring通過什麼方式訪問Hibernate?

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

控制反轉 Hibernate Template和 Callback。

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

46. Spring支援的ORM

Spring支援以下ORM:

Hibernate

iBatis

JPA (Java Persistence API)

TopLink

JDO (Java Data Objects)

OJB

47.如何通過HibernateDaoSupport將Spring和Hibernate結合起來?

用Spring的 SessionFactory 呼叫 LocalSessionFactory。整合過程分三步:

配置the Hibernate SessionFactory。

繼承HibernateDaoSupport實現一個DAO。

在AOP支援的事務中裝配。

48. Spring支援的事務管理型別

Spring支援兩種型別的事務管理:

程式設計式事務管理:這意味你通過程式設計的方式管理事務,給你帶來極大的靈活性,但是難維護。

宣告式事務管理:這意味著你可以將業務程式碼和事務管理分離,你只需用註解和XML配置來管理事務。

49. Spring框架的事務管理有哪些優點?

它為不同的事務API 如 JTA,JDBC,Hibernate,JPA 和JDO,提供一個不變的程式設計模式。

它為程式設計式事務管理提供了一套簡單的API而不是一些複雜的事務API如

它支援宣告式事務管理。

它和Spring各種資料訪問抽象層很好得整合。

50. 你更傾向用那種事務管理型別?

大多數Spring框架的使用者選擇宣告式事務管理,因為它對應用程式碼的影響最小,因此更符合一個無侵入的輕量級容器的思想。宣告式事務管理要優於程式設計式事務管理,雖然比程式設計式事務管理(這種方式允許你通過程式碼控制事務)少了一點靈活性。

51. 解釋AOP

面向切面的程式設計,或AOP, 是一種程式設計技術,允許程式模組化橫向切割關注點,或橫切典型的責任劃分,如日誌和事務管理。

52. Aspect 切面

AOP核心就是切面,它將多個類的通用行為封裝成可重用的模組,該模組含有一組API提供橫切功能。比如,一個日誌模組可以被稱作日誌的AOP切面。根據需求的不同,一個應用程式可以有若干切面。在Spring AOP中,切面通過帶有@Aspect註解的類實現。

53. 在Spring AOP 中,關注點和橫切關注的區別是什麼?

關注點是應用中一個模組的行為,一個關注點可能會被定義成一個我們想實現的一個功能。

橫切關注點是一個關注點,此關注點是整個應用都會使用的功能,並影響整個應用,比如日誌,安全和資料傳輸,幾乎應用的每個模組都需要的功能。因此這些都屬於橫切關注點。

54. 連線點

連線點代表一個應用程式的某個位置,在這個位置我們可以插入一個AOP切面,它實際上是個應用程式執行Spring AOP的位置。

55. 通知

通知是個在方法執行前或執行後要做的動作,實際上是程式執行時要通過SpringAOP框架觸發的程式碼段。

Spring切面可以應用五種型別的通知:

before:前置通知,在一個方法執行前被呼叫。

after: 在方法執行之後呼叫的通知,無論方法執行是否成功。

after-returning: 僅當方法成功完成後執行的通知。

after-throwing: 在方法丟擲異常退出時執行的通知。

around: 在方法執行之前和之後呼叫的通知。

56. 切點

切入點是一個或一組連線點,通知將在這些位置執行。可以通過表示式或匹配的方式指明切入點。

57. 什麼是引入?

引入允許我們在已存在的類中增加新的方法和屬性。

58. 什麼是目標物件?

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

59. 什麼是代理?

代理是通知目標物件後建立的物件。從客戶端的角度看,代理物件和目標物件是一樣的。

60. 有幾種不同型別的自動代理?

BeanNameAutoProxyCreator

DefaultAdvisorAutoProxyCreator

Metadata autoproxying

61. 什麼是織入。什麼是織入應用的不同點?

織入是將切面和到其他應用型別或物件連線或建立一個被通知物件的過程。

織入可以在編譯時,載入時,或執行時完成。

62. 解釋基於XML Schema方式的切面實現。

在這種情況下,切面由常規類以及基於XML的配置實現。

63. 解釋基於註解的切面實現

在這種情況下(基於@AspectJ的實現),涉及到的切面宣告的風格與帶有java5標註的普通java類一致。

64. 什麼是Spring的MVC框架?

Spring 配備構建Web 應用的全功能MVC框架。Spring可以很便捷地和其他MVC框架整合,如Struts,Spring 的MVC框架用控制反轉把業務物件和控制邏輯清晰地隔離。它也允許以宣告的方式把請求引數和業務物件繫結。

65. DispatcherServlet

Spring的MVC框架是圍繞DispatcherServlet來設計的,它用來處理所有的HTTP請求和響應。

66. WebApplicationContext

WebApplicationContext 繼承了ApplicationContext 並增加了一些WEB應用必備的特有功能,它不同於一般的ApplicationContext ,因為它能處理主題,並找到被關聯的servlet。

67. 什麼是Spring MVC框架的控制器?

控制器提供一個訪問應用程式的行為,此行為通常通過服務介面實現。控制器解析使用者輸入並將其轉換為一個由檢視呈現給使用者的模型。Spring用一個非常抽象的方式實現了一個控制層,允許使用者建立多種用途的控制器。

68. @Controller 註解

該註解表明該類扮演控制器的角色,Spring不需要你繼承任何其他控制器基類或引用Servlet API。

其他面試答案參考:2019年一線大廠春招:Spring面試題和答案合集(上篇)

最後福利:

上面大廠的面試答案和更多的大廠真題小編也整理了在一起,同時還準備了一份架構進階視訊資料

歡迎工作一到五年的Java工程師朋友們加入Java高階架構:705127209

群內提供免費的Java架構學習資料(裡面有高可用、高併發、高效能及分散式、Jvm效能調優、Spring原始碼,

MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)

合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!

相關推薦

2019一線大廠Spring試題答案下篇

開發十年,就只剩下這套架構體系了! >>>   

2019一線大廠Spring試題答案上篇

開發十年,就只剩下這套架構體系了! >>>   

Spring試題答案

tar aos 好處 責任 strong enc 進行 需求 getter Spring 概述 1. 什麽是spring? Spring 是個java企業級應用的開源開發框架。Spring主要用來開發Java應用,但是有些擴展是針對構建J2EE平臺的web應用。Sprin

69道Spring試題答案

clas 完成 上傳 stp 集合 xml配置 很好 單元測試 簡潔 Spring 概述 1. 什麽是spring? Spring 是個Java企業級應用的開源開發框架。Spring主要用來開發Java應用,但是有些擴展是針對構建J2EE平臺的web應用。Spring 框架

史上最全 69 道 Spring 試題答案

str 路徑 輕量 情況下 list 開發 erp throw 解決方案 史上最全 69 道 Spring 面試題和答案 目錄Spring 概述依賴註入Spring beansSpring註解Spring數據訪問Spring面向切面編程(AOP)Spring MVC S

經典Spring 試題答案

  目錄 Spring 概述 依賴注入 Spring beans Spring註解 Spring資料訪問 Spring面向切面程式設計(AOP) Spring MVC Spring 概述   1. 什麼是spring? S

2018Android試題答案--適合中高階

1、Activity生命週期? onCreate() -> onStart() -> onResume() -> onPause() -> onStop() -> onDetroy() 2、Service生命週期? service 啟動方式有兩種,一種是通過

69 個經典 Spring 試題答案

Spring 概述 1. 什麼是spring? Spring 是個java企業級應用的開源開發框架。Spring主要用來開發Java應用,但是有些擴充套件是針對構建J2EE平臺的web應用。Spring 框架目標是簡化Java企業級應用開發,並通過POJO為基礎

試題:70道Spring試題答案

轉自:搜雲庫 本文包括以下部分 Spring 概述 Spring 依賴注入 Spring beans Spring 註解 Spring 資料訪問 Spring 面向切面程式設計(AOP) Spring M

2018Android試題答案--適合中高階

2018年Android面試題含答案–適合中高階(上) 轉載 【原連結】新增連結描述 這些面試題是我在今年年初換工作的時候整理,沒有重點。包括java基礎,資料結構,網路,Android相關等等。適合中高階工程師。由於內容過多,將會分為上下兩部分。下部分跳轉連結: https://blog.

史上最全69道Spring試題答案

目錄 Spring 概述 依賴注入 Spring beans Spring註解 Spring資料訪問 Spring面向切面程式設計(AOP) Spring MVC Spring 概述 1. 什麼是spring? Spring 是個java企業級應用的開源開發

最全的Spring試題答案

1、什麼是Spring框架?Spring框架有哪些主要模組?         Spring框架是一個為Java應用程式的開發提供了綜合、廣泛的基礎性支援的Java平臺。Spring幫助開發者解決了開發中基礎性的問題,使得開發人員可以專注於應用程式的開發。Spring框架本身

69道Spring試題答案,簡單明了無套路

ada 函數 編碼 相對 相互 目標 功能 時也 必須 目錄 Spring 概述 依賴註入 Spring beans Spring註解 Spring數據訪問 Spring面向切面編程(AOP) Spring MVC Spring 概述 1. 什麽是

JAVA面試--史上最全 69 道 Spring 試題答案

開發十年,就只剩下這套架構體系了! >>>   

java開發試題spring試題總結

unit proto 實現 ase 註解 加載器 ins 所有 spec 今天分享的java實習生常見面試題,是spring專場,主要是針對spring總結的面試題,有需要的小夥伴可以收入囊中了! 1、 Spring Framework 中有多少個模塊,它們分別是什麽? S

大廠面試必備css試題彙總

小夥伴們,前幾天的css面試題彙總大全看的怎麼樣呢,今天,繼續來更新最後一彈,咱們閒言少敘,進入正題。 如果有想一起學習web前端,HTML5及JavaScript的可以來一下我的前端群:733581373,好友都會在裡面交流,分享一些學習的方法和需要注意的小細節,每天也會準時的講

助力明年的Python試題公佈啦!

Python是在20世紀80年代末建立的。它的實現始於1989年。Python的哲學是非常有趣,因為它包括幾個格言。顯式而不是隱式,簡單而不是複雜。Python創作者珍視美麗的設計和外觀。           學習Python中有不明白推

2019大資料福利推薦】MaxCompute教程、案例視訊彙總持續更新20190111

大資料計算服務(MaxCompute,原名ODPS,產品地址:https://www.aliyun.com/product/odps)是一種快速、完全託管的TB/PB級資料倉庫解決方案。MaxCompute向用戶提供了完善的資料匯入方案以及多種經典的分散式計算模型,能夠更快速的解決使用者海量資料計算問題,有

hadoop學習筆記hdfs體系結構讀寫流程

sim 百萬 服務器 發表 繼續 什麽 lose 基於 一次 原文:https://www.cnblogs.com/codeOfLife/p/5375120.html 目錄 HDFS 是做什麽的 HDFS 從何而來 為什麽選擇 HDFS 存儲數據 HDFS

2018,最經典的26個JavaScript試題答案

根據 Stack Overflow 的 2018 年度調查,JavaScript 連續六年成為最常用的程式語言。所以我們必須面對這樣的現實,JavaScript 已經成為全棧開發技能的基石,在全棧開發面試中都會不可避免地涉及到與 JavaScript 有關的問題。FullStack.Cafe 彙編了