黑馬Spring3天課程

2021-10-12 07:23:06 字數 2207 閱讀 5818

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...