Spring中@Component與@Bean的區(qū)別

最近翻了一下Spring In Action,看完前三章發(fā)現(xiàn)@Bean和@Component用得挺多焚虱,不過對這兩者的區(qū)別不是很清楚基矮,書中也沒有詳細介紹聚磺。

Google了一下,發(fā)現(xiàn)一篇文章寫得不錯聂沙,不過是純英文的:http://www.tomaszezula.com/2014/02/09/spring-series-part-5-component-vs-bean/

下面是看過上面文章之后自己的一些理解:

首先我們看看這兩個注解的作用:

  • @Component注解表明一個類會作為組件類秆麸,并告知Spring要為這個類創(chuàng)建bean。

  • @Bean注解告訴Spring這個方法將會返回一個對象及汉,這個對象要注冊為Spring應用上下文中的bean沮趣。通常方法體中包含了最終產(chǎn)生bean實例的邏輯。

兩者的目的是一樣的坷随,都是注冊bean到Spring容器中房铭。

@Component(@Controller、@Service温眉、@Repository)通常是通過類路徑掃描來自動偵測以及自動裝配到Spring容器中缸匪。

而@Bean注解通常是我們在標有該注解的方法中定義產(chǎn)生這個bean的邏輯。

舉個栗子:

@Controller

//在這里用Component类溢,Controller凌蔬,Service,Repository都可以起到相同的作用闯冷。

@RequestMapping(″/web/controller1″)
public class WebController {
    .....
}

而@Bean的用途則更加靈活

當我們引用第三方庫中的類需要裝配到Spring容器時砂心,則只能通過@Bean來實現(xiàn)

舉個例子:

public class WireThirdLibClass {
    @Bean
    public ThirdLibClass getThirdLibClass() {
        return new ThirdLibClass();
    }
}

再舉個只能用@Bean的例子:

@Bean
public OneService getService(status) {
    case (status)  {
        when 1:
                return new serviceImpl1();
        when 2:
                return new serviceImpl2();
        when 3:
                return new serviceImpl3();
    }
}

以上這個例子是無法用Component以及其具體實現(xiàn)注解(Controller、Service蛇耀、Repository)來實現(xiàn)的辩诞。


總結(jié):@Component和@Bean都是用來注冊Bean并裝配到Spring容器中,但是Bean比Component的自定義性更強纺涤∫朐荩可以實現(xiàn)一些Component實現(xiàn)不了的自定義加載類。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末洒琢,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子褐桌,更是在濱河造成了極大的恐慌衰抑,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件荧嵌,死亡現(xiàn)場離奇詭異呛踊,居然都是意外死亡砾淌,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門谭网,熙熙樓的掌柜王于貴愁眉苦臉地迎上來汪厨,“玉大人,你說我怎么就攤上這事愉择〗俾遥” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵锥涕,是天一觀的道長衷戈。 經(jīng)常有香客問我,道長层坠,這世上最難降的妖魔是什么殖妇? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮破花,結(jié)果婚禮上谦趣,老公的妹妹穿的比我還像新娘。我一直安慰自己座每,他們只是感情好前鹅,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著尺栖,像睡著了一般嫡纠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上延赌,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天除盏,我揣著相機與錄音,去河邊找鬼挫以。 笑死者蠕,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的掐松。 我是一名探鬼主播踱侣,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼大磺!你這毒婦竟也來了抡句?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤杠愧,失蹤者是張志新(化名)和其女友劉穎待榔,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡锐锣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年腌闯,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片雕憔。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡姿骏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出斤彼,到底是詐尸還是另有隱情分瘦,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布畅卓,位于F島的核電站擅腰,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏翁潘。R本人自食惡果不足惜趁冈,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望拜马。 院中可真熱鬧渗勘,春花似錦、人聲如沸俩莽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽扮超。三九已至取刃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間出刷,已是汗流浹背璧疗。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留馁龟,地道東北人崩侠。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像坷檩,于是被迫代替她去往敵國和親却音。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348