Spring學習筆記

JavaEE_Spring

知識點

  1. IOC & DI 的概述
  2. 配置 Bean 方式: 1) 基於XML文件的方式 2)基於註解的方式
  3. Bean 的配置方式: 1)經過全類名(反射)、 2)經過工廠方法(靜態工廠方法 & 實例工廠方法)、 3)FactoryBean
  4. IOC 容器 BeanFactory & AApplicationContext 概述 1) BeanFactory 2)AApplicationContext
  5. 依賴注入的的方式: 1)屬性注入 2)構造器注入 3)工廠方法注入,不多用不推薦
  6. 注入屬性細節
  7. 自動裝配
  8. bean 之間的關係: 1)繼承 2)依賴
  9. bean 的做用域 1)singleton 2) prototype 3) WEB 環境做用域
  10. 使用外部屬性文件
  11. spEL
  12. IOC 容器中 Bean 的生命週期
  13. Spring4.X 新特性:泛型依賴注入

1. IOC & DI 的概述

IOC : 思想 - 反轉資源的獲取的方向。【控制反轉】
傳統的資源查找方式 要求組件向容器發起請求查找資源,做爲迴應,容器適時的返回資源。
        應用了 IOC 以後,則是 容器主動的將資源推送給它所管理的組件,組件所要作的僅是選擇一種合適的方式來接受資源。
        這種行爲也被稱爲查找的 被動形式
DI : IOC 的另外一種表達方式。【依賴注入】
更爲直接的:組件以一些預約好的方式(如:setter方法)來接受來自 容器的資源注入。

2. 基於XML文件的方式 配置 bean

`配置 bean 全類名(反射)`
         bean.id : 標識做用,可自定義名字。經過 id  來應用bean
         bean.class : bean 的全類名,經過反射的方式 在ioc 容器中建立 bean 。因此要求 bean 中要有無參構造
         property.name : bean setter方法名字(若是沒有刻意更改就是屬性名)
         property.value : 
                    傳輸值:1) 能夠用構造器 —— 不推薦,由於多參數的時候,須要順序一直,一個錯都錯
                           2)set 方法。靈活自由,此時須要無參構造
         
        <bean id="bean1" class="HelloWorld">
            <property name="name" value="lsy"></property>
        </bean>

5. 依賴注入的的方式:

一、屬性注入——setter方法 最經常使用
二、構造器注入,用 <constructor-arg> 須要考慮構造器 參數 數量類型和順序,錯一個都不行
工廠注入法,不多用,不推薦
<constructor-arg>
三、 級聯屬性須要 get 方法
<!--
        給級聯屬性賦值
         注意:給級聯屬性賦值,須要有對應的getter方法
         -->
        <bean id="carItem" class="ashley.spring.beans.CartItem">
            <property name="book" ref="book"></property>
            <!-- 賦值 -->
            <property name="book.id" value="2"></property>
            <property name="book.name" value="Oracle"></property>
            <property name="count" value="30"></property>
            <property name="amount" value="10.2"></property>
        </bean>
四、 集合屬性賦值

可使用<list> <map> <set> 集合裏也能夠套嵌集合spring

<bean id="person" class="ashley.spring.beans.collections.Person">
                <property name="name" value="小李"></property>
                <property name="age" value="100"></property>
                <property name="cars">
                    <list>
                        <ref bean="car1"></ref>
                        <ref bean="car2"></ref>
                        <ref bean="car3"></ref>
                    </list>
                </property>
          </bean>
相關文章
相關標籤/搜索