【5】進大廠必須掌握的面試題-Java面試-spring
阿新 • • 發佈:2020-10-14
## **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](https://img2020.cnblogs.com/other/2169955/202010/2169955-20201013211526728-1346149572.png)
- **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](https://img2020.cnblogs.com/other/2169955/202010/2169955-20201013211526895-890303817.png)**
### **Q6。建構函式注入和setter注入之間有什麼區別?**
| **沒有。** | **建構函式注入** | **setter注射** |
| ---------- | ---------------------------------- | -------------------------------- |
| 1) | 無區域性注入 | 部分注射 |
| 2) | 不覆蓋setter屬性 | 如果定義了建構函式,則重寫它們。 |
| 3) | 如果發生任何修改,則建立一個新例項 | 如果更改屬性值,則不會建立新例項 |
| 4) | 對於太多的屬性更好 | 更好的一些屬性。 |
### **Q7。spring的自動注入模式是什麼?什麼是自動裝配模式?**
自動裝配使程式設計師能夠自動注入Bean。我們不需要編寫顯式的注入邏輯。 讓我們看看使用依賴注入來注入bean的程式碼。
```xml