Spring 學習總結

2021-10-12 12:41:22 字數 1799 閱讀 7961

spring整合測試環境

對於欄位的注入是通過set方法進行注入的。

基於註解開發:

掃瞄檔案

標頭檔案

<?xml version="1.0" encoding="utf-8"?>

xmlns

=""xmlns:xsi

=""xmlns:context

=""xsi:schemalocation

="/spring-beans.xsd

">

將要掃瞄的檔案

<

context:component-scan

base-package

="com.crc.entity"

/>

第一組:自動裝配

屬於spring規範

@autowired

@qualifier(value = 「address2」)

總結:@autowired:自動裝配,只會根據預設名字(類名首字元小寫)裝配,如果容器中沒有對應的bean會導致報錯

@qualifier必須與@autowired一起使用,解決了@autowired只會根據預設名字裝配問題

(屬於j2ee復返

@resource(name = " ")

總結:沒有引數,會根據預設預設名字(類名首字元小寫)裝配。

帶引數,會根據引數裝配

@autowired與@resource異同:

@autowired與@resource都可以用來裝配bean。都可以寫在字段上,或寫在setter方法上

@autowired預設按型別裝配(屬於spring規範),預設情況下必須要求依賴物件必須存在,如果要允許null值,可以設定它的required屬性為false,如:@autowired(required=false) ,如果我們想使用名稱裝配可以結合@qualifier註解進行使用。

@resource(屬於j2ee復返),預設按照名稱進行裝配,名稱可以通過name屬性進行指定。如果沒有指定name屬性,當註解寫在字段上時,預設取欄位名進行按照名稱查詢,如果註解寫在setter方法上預設取屬性名進行裝配。當找不到與名稱匹配的bean時才按照型別進行裝配。但是需要注意的是,如果name屬性一旦指定,就只會按照名稱進行裝配。

它們的作用相同都是用註解方式注入物件,但執行順序不同。@autowired先bytype,@resource先byname。

第二組,分層開發

@controller:controller層

@service:service層,要加在實現類上

@repository:dao層,要加在實現類上

可以減少大量的配置檔案數量

說白了就是一整套業務流程,在不同層中加入對應的註解,容器在掃瞄整個檔案時就會自動對bean注入。

第三組,元件開發

前提:開啟自動掃瞄檔案

只需要開啟自動掃瞄檔案,會自動查詢標記了@component的類生成bean

@component:標記將要配bean的類

@value:字段屬性

第四組,配置檔案

@bean:標記配置的類

@configuration:標記這是個配置檔案類

使用原因:

在開發過程中我們會用到很多第三方的包,因為第三方的包不是我們自己寫的並且我們不好修改他人的類。因此我們可以通過@configguration 設定乙個配置類,用來專門對第三方的類進行配置。

碰到的問題:

1、在使用@bean時,對應的類不能放在同乙個包中,原因不知道。

Spring學習總結

xx list,arrays setmap properties null list setmap props xx xx xx xx xx 注意 autowiring能夠與顯式的wiring一起使用。初始化屬性 public inte ce pointcutpublic inte ce class...

Spring學習總結

注 我是參考 spring實戰 這本書的 一 2.1中我們要給juggler加乙個吟詩的功能,我們不可能說改變perform方法吧,那又有新的功能,我們又得改變這個方法,那再改變呢?頻繁的修改呢?我們不可能頻繁的修改這個方法。那再寫乙個poem介面,這樣子我們只要新的能夠吟詩的poticjuggle...

spring學習總結

一 普通bean 之前操作的都是普通 bean。spring 直接建立 a例項,並返回 二 factorybean 是乙個特殊的 bean 具有工廠生成物件能力,只能生成特定的物件。bean必須使用 factorybean 介面,此介面提供方法 getobject 用於獲得特定 bean。先建立fb...