X Spring

什麼是 Spring 框架?主要模塊是什麼? 有什麼好處?

Spring

什麼是控制反轉 (IOC) 和依賴注入(DI)?

Core - IOC

在Spring Framework 中如何使用 IOC 容器?

BeanFactory 和 ApplicationContext 之間的區別?

BeanFactoryApplicationContext

建構子注入與 setter 注入的差別?

Core - IOC

什麼是AOP ? 為什麼使用 AOP ? 怎麼實現的 ?

Core - AOP

為什麼要使用動態代理 ?

JDK 代理(Proxy)

有哪些有用到 AOP ?

  • 攔截器 Interceptor。

  • 事務管理 Transactional。

  • 紀錄 Logging。

  • 安全驗證 Security。

Spring AOP 和 AspectJ AOP 的區別 ?

  • Spring AOP 基於 動態代理 實現。

  • AspectJ 基於 靜態代理 實現。

可以通過哪些方式將 Spring 配置到應用程序中?

  • 基於XML的配置

  • 基於註釋的配置(主要)

  • 基於Java的配置(主要)

解釋 Spring Bean 的生命週期?Bean 範圍有哪些不同? Singleton bean 執行緒安全嗎?

解釋 Bean自動裝配?有哪些不同的模式?

Bean

BeanFactory 與 FactoryBean 的區別 ?

BeanFactory

解釋 @Autowired / @Qualifier / @Required ?

Annotation

什麼是循環依賴?

A 依賴注入於 B,B 依賴注入於 C ,C 依賴注入於 A。

如何解決循環依賴?

  • 重新設計。

  • 透過 @Lazy 延遲加載

  • 不透過 建構子注入,而是透過 setter 注入

  • 使用 @PostConstruct 階段,注入依賴的對象。

  • 其中一個實作 ApplicationContextAware 和 InitializingBean, 讓其可以讀取 context,取得已經完成的另一個bean 。

FileSystemResource和ClassPathResource之間的區別?

雜七雜八

舉例幾個 Spring 常用的設計模式 ?

  • Proxy 代理 –在AOP和遠程處理中大量使用。

  • Singleton 單例 – Spring bean默認為單例。

  • 模板方法 -廣泛地用來對付模板重複代碼,如: RestTemplateJpaTemplate

  • Front Controller – Spring 提供 DispatcherServlet 以確保傳入的請求被調度到控制器。

  • View Helper – Spring具有許多視圖技術 ( JSP、thymeleaf ),以幫助將代碼與 View 分離。

  • 依賴注入 –以整體 BeanFactory / ApplicationContext 概念為中心的 IOC 容器。

  • 工廠模式 –用於創建對象實例的 BeanFactory。

Last updated

Was this helpful?