【5】進大廠必須掌握的面試題-Java面試-spring


spring面試問題

Q1。什么是spring?

Spring本質上是一個輕量級的集成框架,可用於用Java開發企業應用程序。

Q2。命名Spring框架的不同模塊。

一些重要的Spring Framework模塊是:

  • Spring Context –用於依賴注入。
  • Spring AOP –用於面向方面的編程。
  • Spring DAO –使用DAO模式進行數據庫操作
  • Spring JDBC –用於JDBC和DataSource支持。
  • Spring ORM –對ORM工具的支持,例如Hibernate
  • Spring Web Module –用於創建Web應用程序。
  • Spring MVC –用於創建Web應用程序,Web服務等的Model-View-Controller實現。

Q3。列出基於注釋的Spring配置中的一些重要注釋。

重要的注釋是:

  • @Required
  • @Autowired
  • @Qualifier
  • @Resource
  • @PostConstruct
  • @PreDestroy

Q4。在Spring中解釋Bean並列出Spring Bean的不同范圍。

Bean是構成Spring應用程序主干的對象。它們由Spring IoC容器管理。換句話說,bean是一個由Spring IoC容器實例化,組裝和管理的對象。

Spring bean中定義了五個范圍。

SpringBean-Java面試問題-Edureka

  • Singleton:將為每個容器創建一個bean實例。這是spring bean的默認范圍。在使用此范圍時,請確保spring bean沒有共享的實例變量,否則可能會導致數據不一致問題,因為它不是線程安全的。
  • 原型:每次請求bean時都會創建一個新實例。
  • 請求:這與原型范圍相同,但是應用於Web應用程序。將為每個HTTP請求創建一個新的bean實例。
  • 會話:容器將為每個HTTP會話創建一個新bean。
  • Global-session:這用於為Portlet應用程序創建全局會話Bean。

Q5。解釋DispatcherServlet和ContextLoaderListener的角色。

DispatcherServlet基本上是Spring MVC應用程序中的前端控制器,因為它加載了Spring bean配置文件並初始化所有已配置的bean。如果啟用了注釋,它還將掃描軟件包以配置任何使用@ Component,@ Controller,@ Repository或@Service注釋進行注釋的bean。

另一方面,ContextLoaderListener是在Spring根目錄中啟動和關閉WebApplicationContext的偵聽器。它的一些重要功能包括將Application Context的生命周期與ServletContext的生命周期綁定在一起,並自動創建ApplicationContext。

ContextLoader-Java面試問題-Edureka

Q6。構造函數注入和setter注入之間有什么區別?

沒有。 構造函數注入 setter注射
1) 無局部注入 部分注射
2) 不覆蓋setter屬性 如果定義了構造函數,則重寫它們。
3) 如果發生任何修改,則創建一個新實例 如果更改屬性值,則不會創建新實例
4) 對於太多的屬性更好 更好的一些屬性。

Q7。spring的自動注入模式是什么?什么是自動裝配模式?

自動裝配使程序員能夠自動注入Bean。我們不需要編寫顯式的注入邏輯。 讓我們看看使用依賴注入來注入bean的代碼。

<bean id = “ emp” class = “ com.javatpoint.Employee” autowire = “ byName” /> 

自動裝配模式如下:

沒有。 模式 描述
1) 沒有 這是默認模式,這意味着未啟用自動裝配。
2) 按名字 根據屬性名稱注入bean。它使用setter方法。
3) 按類型 根據屬性類型注入bean。它使用setter方法。
4) 構造函數 它使用構造函數注入bean

Q8。如何在Spring MVC Framework中處理異常?

Spring MVC Framework提供了以下方法來幫助我們實現可靠的異常處理。

基於控制器:

我們可以在控制器類中定義異常處理程序方法。我們所需要做的就是使用@ExceptionHandler注釋對這些方法進行注釋。

全局異常處理程序:

異常處理是一個跨領域的問題,Spring提供了@ControllerAdvice批注,我們可以將其與任何類一起使用來定義全局異常處理程序。

HandlerExceptionResolver實現:

對於一般的異常,大多數時候我們提供靜態頁面。Spring Framework提供了HandlerExceptionResolver接口,我們可以通過該接口來創建全局異常處理程序。這種定義全局異常處理程序的其他方法背后的原因是,Spring框架還提供了默認實現類,我們可以在我們的Spring bean配置文件中定義這些默認實現類,以獲得Spring框架異常處理的好處。

Q9。您使用了哪些重要的Spring批注?

我在項目中使用的一些Spring注釋是:

@Controller –用於Spring MVC項目中的控制器類。

@RequestMapping –用於在控制器處理程序方法中配置URI映射。這是一個非常重要的注釋,因此您應該閱讀Spring MVC RequestMapping注釋示例

@ResponseBody –用於發送對象作為響應,通常用於發送XML或JSON數據作為響應。

@PathVariable –用於將動態值從URI映射到處理程序方法參數。

@Autowired –用於自動裝配Spring bean中的依賴項。

@Qualifier –帶有@Autowired注釋,以避免在存在多個bean類型的實例時造成混淆。

@Service –用於服務類。

@Scope –用於配置Spring bean的范圍。

@ Configuration,@ ComponentScan和@Bean –用於基於Java的配置。

AspectJ注釋,用於配置方面和建議,@ Aspect,@ Before,@ After,@ Around,@ Pointcut等。

Q10。如何集成Spring和Hibernate框架?

如果您使用的是SessionFactory提供當前會話的Hibernate 3+,那么我們可以使用Spring ORM模塊來集成Spring和Hibernate框架,那么您應該避免使用HibernateTemplate或HibernateDaoSupport類,而最好使用帶有依賴項注入的DAO模式進行集成。

另外,Spring ORM還提供了對使用Spring聲明式事務管理的支持,因此您應該利用它,而不是使用休眠的樣板代碼進行事務管理。

Q11。命名Spring支持的事務管理的類型。

Spring支持兩種類型的事務管理。他們是:

  1. 程序化事務管理: 在這種情況下,借助編程來管理事務。它為您提供了極大的靈活性,但是很難維護。
  2. 聲明式事務管理: 在此,事務管理與業務代碼分開。僅注釋或基於XML的配置用於管理事務。
    更多精彩內容,請關注公眾號"Java架構師社區",公眾內回復1024可免費獲得3T架構師資源。公眾號內回復進群,邀請您進群交流。

歡迎關注 Java架構師社區公眾號.
本文轉載自Java架構師必看 ,更多內容點擊查看!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM