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