DI/IOC <bean> 表明由容器構建的對象(經過反射構建,且類必須有無參的構造方法)web
公共屬性 id=「惟一的id」 在容器中是惟一的session
name=「相似id屬性」 能夠同時指定多個使用逗號、分號、或空格分隔spa
若是不指id和name定就能夠使用全類名獲取prototype
class=「類的全路徑」component
注入方式 屬性注入 <property name="屬性名"></property> value=「字面值」對象
ref=「容器內對象的ID」繼承
在<property>或<constructor-arg>內部能夠設置內部bean。內部bean不須要設置id,只給當前屬性或參數使用,外部不能使用 索引
構造器注入<constructor-arg> inde「參數索引」作用域
name=「參數名」get
type=「參數數據類型」
工廠方法注入(不經常使用)
集合 <util:集合類型> 添加util文件才能支持 (集合類型爲list,set,map)
list和set有 id,value,ref 值
map有 id 和 entry(key,value,key-ref,value-ref)
簡化 p標籤 p:屬性名=「字面值」
p:屬性名-ref=「引用對象的id」
自動裝配 特色:兩種方法不能同時使用,還會下降代碼可讀性
autowire=「byType」 容器內對應數據類型的對象只能有一個
autowire=「byName」 對象名和屬性名要一致
繼承 特色:子bean能夠繼承和覆蓋父bean的屬性,父bean中自動裝配的屬性不能被繼承
parent=「父bean的id」
abstract=「true」 只能在容器內被繼承,不能被外部使用
做用域 scope=「singleton」 默認的,在容器內建立一個實例,並共享。在建立容器時就進行對象的實例化
scope=「prototype」 每次調用getBean()方法都會產生新的實例
scope=「session」 在web項目對每一個會話產生新的實例
scope=「request」 在web項目對每一個請求產生新的實例
外部屬性文件 定義:命名爲*.porperties 通常放在src目錄下,保存的是key=value的鍵值對,多個鍵值對用回車換行
加載:導入context的標籤訂義 <context:property-placeholder location="classpath:外部屬性文件名"/>
使用:屬性名=「${key}」
註解 對classpath下的類進行掃描和檢測,對具備特定註解的類進行實例,並進行裝配
啓動掃描 <context:component-scan base-package="包名1,包名2"></context:component-scan> 掃描包及子包下的類
resource-pattern=「過濾的類名」
分類 @Component 基本組件
@Reqository 持久化組件
@Service 業務邏輯組件
@Controller 控制其組建
用法 把註解定義在類名前,能夠用 (value-「組件名」) 指定組件名。若是不指定組件名,默認爲首字母小寫的類名
自動裝配 把註解放在屬性前可實現自動裝配
@Auotwired requried=false 不是必需的
@Qualifier(「指定組建的id」)