《Spring實戰》讀書筆記——Spring簡介

歡迎你們關注個人微信公衆號,共同交流Java相關技術!java

使用Spring的目的

Spring是爲了解決企業級應用開發的複雜性而建立的,使用Spring能夠讓簡單的JavaBean實現以前只有EJB才能完成的事情。web

Spring如何下降Java開發的複雜性

  • 最小侵入編程
  • 經過面向接口和依賴注入實現鬆耦合
  • 基於編程慣例和切面進行聲明式編程
  • 經過模板減小樣板式代碼

Spring容器

在Spring應用中,再也不由對象自行建立或管理它們之間的依賴關係;Spring容器負責建立對象、裝配對象、配置它們並管理它們的整個生命週期。spring

容器是Spring框架的核心,是依賴注入和切面的基礎,其自帶了多個容器實現,這多個實現能夠歸類爲兩種不一樣的類型:數據庫

  • Bean工廠,提供基本的依賴注入支持
  • ApplicationContext,基於Bean工廠構建,提供應用框架級別的服務

ApplicationContext在實際的應用中更普遍、更受歡迎。express

應用上下文

Spring自帶了多種類型的應用上下文,其中最經常使用的幾種爲:編程

  • AnnotationConfigApplicationContext:從一個或多個基於Java的配置類中加載Spring上下文
  • AnnotationConfigWebApplicationContext:從一個或多個基於Java的配置類中加載Spring Web應用上下文
  • ClassPathXmlApplicationContext:從類路徑下的一個或多個xml配置文件中加載Spring上下文
  • FileSystemXmlApplicationContext:從文件系統下的一個或多個xml配置文件中加載Spring上下文
  • XmlWebApplicationContext:從Web應用下的一個或多個xml配置文件中加載Spring上下文
Bean的生命週期
  1. Spring實例化Bean
  2. Spring將值和Bean的引用注入到Bean對應屬性中
  3. 若是Bean實現了BeanNameAware接口,Spring將Bean的id傳給setBeanName()方法
  4. 若是Bean實現了BeanFactoryAware接口,Spring調用setBeanFactor()方法,將BeanFactory實例傳入
  5. 若是Bean實現了ApplicationContextAware接口,Spring調用setApplicationContext()方法,將Bean所在的應用上下文傳入
  6. 若是Bean實現了BeanPostProcessor接口,Spring調用postProcessBeforeInitialization()方法
  7. 若是Bean實現了InitializingBean接口或使用了init-method聲明瞭初始化方法,Spring調用afterPropertiesSet()方法
  8. 若是Bean實現了BeanPostProcessor接口,Spring調用postProcessAfterInitialization()方法
  9. Bean初始化完畢,能夠進行使用,其將一直在應用上下文中駐留,直到該應用上下文銷燬
  10. 若是Bean實現了DesposableBean接口或使用了destroy-method聲明瞭銷燬方法,Spring將調用destroy()方法

Spring核心模塊

Spring的模塊依據其所屬的功能能夠劃分爲6類。微信

Spring核心容器
  • core:Spring核心
  • context:Spring容器
  • beans:Spring的Bean工廠
  • expression:Spring表達式語言
  • context-support:Spring容器輔助支撐
Spring AOP
  • aop:面向切面編程
  • aspectJ:切面註解相關
數據訪問與集成
  • JDBC:數據庫訪問相關
  • JMS:消息相關
  • ORM:對象關係映射模型相關
  • OXM:XML映射模型相關
  • transaction:事務相關
  • Messaging:消息服務相關
Web與遠程調用
  • Web MVC:Spring提供的MVC框架
  • Web Servlet:Servlet相關
  • WebSocket:Socket編程相關
Instrumentation

使用場景有限,暫時不須要了解markdown

Test

Spring提供的測試框架app

總結

本文從總的方向上對Spring相關的內容進行了介紹,並不涉及任何細節的東西。主要涉及Spring的優點、Spring容器、Spring應用上下文、Spring生命週期、Spring項目的模塊化。在接下來的文章中,將會經過示例的方式展現Spring每一項功能的使用。框架

相關文章
相關標籤/搜索