ioc(inversion of control) 控制反轉,將**的控制權轉移,從**本身轉移到spring容器中,由spring容器進行控制。
實現步驟:
獲取spring容器
在容器中註冊響應的bean
獲取容器中已經註冊的bean
io(dependency injection)依賴注入,當容器中的某乙個bean物件需要外部另外乙個bean物件的時候,我們不需要例項化這個物件,只要依賴容器注入就可以。
注入方式:
構造器注入
public
class
userservice
implements
iuserservice
}
set屬性注入
public
class
userserviceimpl
implements
iuserservice
}
使用命名空間
<?xml version="1.0" encoding="utf-8"?>
介面注入(使用factorybean介面)
bean的建立不是由**開發者去建立,轉由spring容器去建立
建立好了之後用鍵值對的方式存在容器中 beanfactory
拿到的beanconfig getbean方法通過beanconfig中的classname反射生成bean物件
new();
new();
springmvc採用***自動建立存放在servletcontext中
web.xml
<?xml version="1.0" encoding="utf-8"?>
xmlns:xsi=""
version="4.0">
org.springframework.web.context.contextloaderlistener
contextconfiglocation
//從web容器中獲取spring容器
//1.通過servletcontext中獲取容器
//2.使用工具類獲取spring容器.
(this
.getservletcontext()
);
無參構造器裝配(構造器與set屬性注入常使用)
a.存在這個bean,並且這個bean一定要有無參的建構函式
b.在spring容器中配置這個bean,配置id和class屬性即可
靜態工廠方法裝配
public
class
daofactory
}
動態工廠方法注入
public
class
daofactory
}
factorybean方式(使用介面注入的裝配方式)
public
class
testbeanfactory
implements
factorybean
@override
public class<
?>
getobjecttype()
@override
public
boolean
issingleton()
}
在配置檔案中設定bean的作用域 scope=「singleton」
執行銷毀list set map properties spring自帶4個標籤支援 list set map props只有單例的才能手動銷毀
主動銷毀容器才能執行銷毀方法
list set 子標籤是value,map子標籤entry(key value),props子標籤是prop(key,值寫在標籤中)
注入其他類的屬性 spel表示式 #{}
獲取容器的時候引數採用陣列的方式,有幾個配置檔案,就傳入幾個引數
在乙個總配置檔案中引入其他的配置檔案
spring學習筆記一 IOC配置使用
1.bean的命名 每個bean可以有乙個或多個id 或稱之為識別符號或名字 在這裡我們把 第乙個id稱為 識別符號 其餘id叫做 別名 這些id在ioc容器中必須唯一。如何為bean指定id呢,有以下幾種方式 一 不指定id,只配置必須的全限定類名,由ioc容器為其生成乙個標識,客戶端必須通過介面...
Spring總結一 IOC與Bean注入
spring 的核心是控制反轉 ioc 和面向切面 aop ioc即inversion of control,翻譯過來就是控制反轉。啥是控制反轉啊?控制反轉指的就是將物件的建立權反轉給 交給 了spring,其作用是實現了程式的解耦合。也可以說是獲取物件的方式變了,物件建立的控制權不是 使用者 而是...
Spring的IoC與DI差異
一 ioc ioc,全稱為inversion of control,即控制反轉。ioc是依賴倒置原則的一種 設計思想,把建立物件的權利交給框架,是框架的重要特徵。其包括依賴注入 dependency injection,簡稱di 和依賴查詢 dependency lookup ioc有兩個重點,一是...