sprnig核心思想:
1.ioc(控制反轉)
2.aop(面向切面程式設計)
學習spring目的
1.搞清楚@bean的使用,以及ioc和aop的使用方式,啥東西,什麼時候可以放進spring容器裡,什麼時候能拿出來用
2.學習springmvc目的在於搞明白專案裡註解的情況
3.成體系地學習springmvc為了搞明白sping業務邏輯**在**寫
耦合:程式間的依賴關係
包括:類之間的依賴
方法間的依賴
解耦:降低程式之間的依賴
實際開發中:
應該做到:編譯期間不依賴,執行時才依賴
解耦的思路:
第一步:通過反射來建立物件,而避免使用new關鍵字
第二步:通過讀取配置檔案來獲取要建立的物件的全限定類名
比如如下**
public
class
jdbcdemo1
}
介紹spring框架使用的那幾節課
講ioc的節課,新建工程走一遍流程即可,因為那個課大部分時間是在測試"生命週期,單例多例"
ac是spring容器物件,從spring中拿東西只需要ac.getbean(id=「***」)
spring物件儲存bean的"容器"和我們自己實現的ioc工廠一樣,是乙個map型別
"注入"指的是向spring建立的bean物件中,放入內容資訊
(由於bean物件在spring容器內部,無法直接呼叫此物件的方法,所以需要"注入"操作)
方法1: 使用有引數建構函式初始化bean物件的內容
方法2: 使用get和set方法設定bean物件內容
講"注入"之前的幾天的課程都沒有使用"註解",而是直接獲取spring容器,同時使用"."語法呼叫spring的方法,這種語法簡單明確便於學習
(程式裡)建立spring物件->(xml配置檔案裡)根據bean配置檔案在sring物件的容器中建立bean物件,根據配置檔案向bean物件注入內容->(程式裡)在另乙個地方通過spring物件.getbean()獲取到spring裡面的bean
spring物件儲存bean的"容器"和我們自己實現的ioc工廠一樣,是乙個map型別
建立物件,必須提供id(就是map的key)
使用註解的時候要在spring配置檔案中加上"包掃瞄"標籤context:component-scan,才能使用@component註解在spring容器中建立物件
1.了解了spring框架的架構與內部原理
2.了解了常用注釋@autowired @resources @value是什麼
3.了解了@configer @bean注釋的xml模樣,實際上也就是spring的"物件建立+bean內容注入"配置檔案
接下來詳細分析這些內容
@autowired註解可標註在fields,methods,parameters這幾種型別之前
fields(反射機制中的"變數"叫法)
@autowired 註解是"從spring容器裡取出乙個物件",然後"注入"(賦值給)另乙個變數的做法.此"被注入的變數"可以也是乙個spring容器管理的物件,好像也可以不是spring管理的物件
@qualified註解要和@autowired一起使用,用於給@autowired新增限定符(因為@autowired是依照型別+變數名 自動注入,有時候不太好用)
@resources(name="")是自帶限定符的@autowired,引數"name"填寫spring容器內bean物件的id,即可精確查詢
@component出現於p30,寫在乙個自己建立的類之前,用於在spring容器中建立這個物件
(程式裡)建立spring物件->(xml配置檔案裡)根據bean配置檔案在sring物件的容器中建立bean物件,根據配置檔案向bean物件注入內容->(程式裡)在另乙個地方通過spring物件.getbean()獲取到spring裡面的bean
建立物件的註解:
@component
建立物件也可以在spring的xml檔案中建立
注入內容的註解:
@autowired+@qualified @resources (從spring中拿出物件,然後"注入"給spring內的另乙個物件)
常用spring3註解
configuration把乙個類作為乙個ioc容器,它的某個方法頭上如果註冊了 bean,就會作為這個spring容器中的bean。scope註解 作用域 lazy true 表示延遲初始化 service用於標註業務層元件 controller用於標註控制層元件 如struts中的action ...
spring3 常見異常解決
以下異常使用的是spring是3.1.1,是我自己學習中遇到的錯誤筆記,有可能不是都適用,僅做參考 原因 缺少包,加入 org.springframework.transaction 3.1.1.release.jar 即可原因 缺少包,加入org.springframework.aop 3.1.1...
Spring 3 自動裝配bean
class com.csu.autowire.address p city changsha p street shaoshan id car class com.csu.factory.car p name benz p price 632275 p speed 290 p address ref...