1. 程式人生 > >spring基本用法總結

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>

   <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")

待續。。。。。。。。。。。。。。。。。