spring基本用法總結
使用兩年spring後,發現對spring依舊陌生,遂重新總結spring基礎用法
特性:1,依賴注入的核心機制;2,Aop的宣告式事務管理;3與多種持久層結合使用;4,web MVC的優秀使用;
一、下載安裝
1,http://repo.springsource.org/libs-release-local/下下載springframework下的spring找到spring-framework-4.0.4.release-dist.zip下載解壓
libs資料夾下有所需所有jar包;需要額外下載common-logging的jar包
schemas下有所需要各種配置xml檔案的xml schema文件
2,使用eclipse的user liberary選項載入jars,具體方法不解釋,方便實用。
二、核心機制
1.依賴注入
名稱定義:控制反轉(將以前主動建立物件的權利交給spring),依賴注入(spring給呼叫者注入例項,供其使用)
<1.設值注入:使用成員變數的setter方法注入;
<property name="***" ref="">-----------------成員變數為類(具體實現類不能是介面)
<property name="*** " value="">--------------成員變數為基本資料型別
<property name=" ">
<list>
<value>小學</value>
</list>
</property>
<property name=" ">
<map>
<entry key="數學" value="32">
</map>
<property name=" person.name" value="孫悟空"/>最後一個菜用setter前面用get(所以不能為空)
<2.構造注入:使用構造方法注入;
<constructor-arg name="" ref=“ ”>引數是一個類
<constructor-arg name="" value=" ">引數是一個值可以加上type="int"來區別多構造方法index="0"代表位置
<constructor-arg name="" value=" ">引數是一個值
2.spring容器
<1 BeanFactory:功能不強,沒用下邊的功能
<2 ApplicationContext;功能更為強大,初始化所用單例類,建立bean;為了使它不初始化可以在,bean指定lazy-init="true";可以及時發現初始化時錯誤
支援國際化使用ResourceBundleMesageSource類
事件機制:(1)監聽器
《1》定義一個使用一個繼承了ApplicationEvent的類,它為容器事件
《2》實現一個ApplicationListener介面的實現onApplicationEvent方法
(2)其他內建事件(不做分析)
<3 特殊情況下在bean中獲取spring容器:
類繼承ApplicationContAware,注入ApplicationContext屬性就可以使用了(特殊功能如:國際化)
<4 容器中bean設定(前面加上default-就可以放在beans中了)
《1》為bean定義特殊字元的別名
《2》lazy-init延遲初始化
《3》atuo-autowire自動裝配行為
no:
byName:
byType:
constructor:
autodetect
《4》auto-autowire-candidates排除自動裝配
《5》destroy-method預設回收方法
例如<bean id=" " class=" ">(alias為已有bean新增別名)
bean作用域:
scope=" "
《1》singleton:單例(預設)
《2》prototype:每一次容器getbean都是一個新的
《3》request:
《4》session:
《5》globeSession:
3,使用註釋管理
annotation
@configuration:修飾一個Java配置類
@Bean(name="chinese"):修飾一個方法返回值定義一個bean
@value("孫悟空"):修飾一個field;配置一個變數
《1》:以xml檔案為主:先建立spring容器
《2》:以java配置為主:使用@ImportResource("classpath:/beans.xml")
待續。。。。。。。。。。。。。。。。。