spring : 輕量級,一站式的企業應用框架
設計理念: 面向Bean的編程
核心思想:
One: 依賴注入:(Ioc和Di) 控制反轉和依賴注入
Two:面向切面編程: Aop
有點:
1/低侵入式設計
2/獨立於各種應用服務器
3/依賴注入特性將組建透明化 降低了耦合
—>對象和對象之間,在發生調用關係的時候 ,這種調用關係是交給ioc容器進行的, 作爲使用者不在關心被調用者是怎麼實現的,我們集中精力關注調用者內部是怎麼實現…….後邊會補充本塊兒內容….
4/ 面向切面編程特性允許將通用任務集中處理
5/與第三方框架的良好整合
Ioc:的定義和原理
將組件的控制權從代碼本身轉交給外部容器
組件化的思想:分離關注點,使用接口 不在關注實現
比如:
傳統版本:創建A類 在A類中調用B類的時候 ,需要New一個B的對象
這個時候就是A類在獲取B類的控制權,
工廠模式:根據需要創建對象實例,爲我們返回所需的產品
1/產品的規範
2/產品
3/工廠
4/客戶端調用
案例:
引入spring的四個包 core Context Expression beans
1/創建類
2/創建Application.cfg.xml
3/配置Bean
<!--聲明spring創建的對象實例,id屬性指定對象的標識符, Class屬性指定被聲明的實例的類-->
<bean id="hellospring" class="HelloSpring">
<!--指定屬性名字 ,對應方法裏的SetXXX的XXX-->
<property name="who">
<!--指定被複制的內容-->
<value>Spring ASDFASDFADS FASD</value>
</property>
</bean>
依賴注入的方式有: P命名空間注入屬性值 前提在xml中導入
xmlns:p = “http://www.springframework .org/schema/p
在注入屬性值的時候 格式如下
p:屬性名 = 值
p:屬性名-ref = bean的id
設值注入及多種情況
1/ 當遇到特殊字符需要注入屬性值的時候 ,
<property name="who">
<!--指定被複制的內容-->
<value><![CDATA[D&A]]></value>
</property>
還可以將特殊字符轉化爲實體引用 . [這裏寫鏈接內容](https://www.cnblogs.com/garinzhang/p/spring_Special_char_encode.html)
2/集合數組注入 標籤是
內部value有多組 還有等
與list集合對應的標籤
同樣 map 集合注入 對應標籤
set集合 <set>
properties類型數據 注入 用
<props>
<prop key="">XXX </prop>
</props>
3/構造注入,
與設值注入不同的是他神根據有參的構造方法實例的
時效性比之要好一些
構造注入中 index 尚需經確定參數位置
特殊情況是 還可以用type指定傳入的參數數據類型
構造注入 靈活性要比 設值注入差
4/註解注入;
此處後邊補充.