Spring入門(一)

Spring為簡化企業級應用開發而生

Spring是一個IOC(DI)(反轉控制)和AOP(面向切面編程)框架

----輕量級:Spring是非侵入性的--基于Sping開發的應用中的對象可以不依賴Spring的API

----容器:Spring是一個容器,因為它包含并且管理應用對象的聲明周期

1、安裝Spring插件方法

2、添加spring依賴的jar包和spring相關的包


IOC(Inversion of Control):其思想是反轉資源獲取的方向。傳統的資源查找方式要求組件向容器發起強求查找資源。作為回應,容器適時地返回資源。而應用了IOC后,則是容器主動地將資源推送給他所管理的組件,組件所要做的僅是選擇一種合適的方式來接受資源,這種方式也被稱為查找的被動方式。

DI(Dependency Injection)-IOC的另一種表述方式,即組件以一些預定義好的方式(例如setter方式)接受來自如容器的資源注入。

在SpringIOC容器讀取Bean配置創建Bean實例之前,必須對他進行實例化,只有在容器實例化后,才可以從IOC容器里獲取Bean實例并使用

Spring提供了兩種類型的IOC容器實現:

---BeanFactory:IOC容器的基本實現

---ApplicationContext:提供了更多的高級特性,是BeanFactory的子接口

---BeanFactory是Spring框架的基礎設施,面向Spring本身;

ApplicationContext面向使用Spring框架的開發者。幾乎所有的應用場合都直接使用ApplicationContext而非底層的BeanFactory

---無論何種方式,配置文件是相同的。

ApplicationContext的主要實現類:

---ClassPathXmlApplicationContext:從類路徑下加載配置文件

---FileSystemXmlApplicationContext:從文件系統中加載配置文件

ConfigurableApplicationContext擴展于ApplicationContext,新增兩個主要方法: refresh()和close(),讓ApplicationContext具有啟動、刷新和關閉上下文的功能

ApplicationContext在初始化上下文時就實例化所有單例的Bean

WebApplicationContext是專門為WEB應用而準備的,它允許從相對于WEB根目錄的路徑中完成初始化工作

Spring支持3種依賴注入的方式

---屬性注入(最常用)

---構造器注入

---工廠方式注入(幾乎不用)

屬性注入即通過setter方法注入bean的屬性值或依賴的對象

屬性注入使用<property>元素,使用name屬性指定Bean的屬性名稱,value屬性或<value>子節點指定屬性值

通過構造方法注入Bean的屬性值或依賴的對象,它保證了Bean實例在實例化后就可以使用

構造器注入在<constructor-arg>元素里聲明屬性,其中沒有name屬性

使用構造器注入屬性可以指定參數的位置和參數的類型,以區分重載的構造器


使用props和prop子節點來為Properties屬性賦值

配置單例bean的集合,以供多個bean進行引用,需要導入util命名空間

通過p命名空間為bean的屬性賦值,需要先導入p命名空間


bean配置的繼承:使用bean的parent屬性指定繼承哪個bean的配置

抽象bean:bean的abstract屬性為true的bean,這樣的bean不能被IOC容器實例化,只用來被繼承配置

依賴前置bean:depends-on(與指定屬性差不多);

使用bean的scope屬性來配置bean的作用域

singleton:默認值,容器初始化時創建bean實例,在整個容器的生命周期內只創建這一個bean,單例

prototype:原型的,容器初始化時不創建bean的實例,而在每次請求時都創建一個新的bean ,并 返回

使用外部屬性文件:

通過<context:property-placeholder location="classpath(類路徑下):db.properties">

spring允許在bean中使用$(proName),以實現引用

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,837評論 18 139
  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,925評論 6 342
  • 什么是Spring Spring是一個開源的Java EE開發框架。Spring框架的核心功能可以應用在任何Jav...
    jemmm閱讀 16,535評論 1 133
  • 文章作者:Tyan博客:noahsnail.com 3.4 Dependencies A typical ente...
    SnailTyan閱讀 4,193評論 2 7
  • 在這個有點微冷帶點小雨的秋夜,我像平時一樣睡前習慣看看書然后滿足入眠。 半夜一點夢到一位我們叫她“來來”的舊同學,...
    我不是蝸牛閱讀 401評論 0 0