Spring註解之@Component、@Controller、@Service、@Repository

@[toc] Spring註解@Component、@Controller、@Service、@Repository放在一塊兒講的緣由很簡單,由於,這四個註解實際上沒有任何本質區別,只是後三者只是涉及一些命名規範而已,四者的註解效果確實一致。關於這裏的命名規範就比如蘋果叫蘋果,你不會說蘋果是菠蘿。這樣的好處顯然易見,聽到別人說蘋果,你就知道是蘋果,不會想到菠蘿。而編程中@Controller你會知道這是一個Controller表現層,@Service表明這是一個Service業務層。javascript

一、使用這四個註解的前提

一、導入AOP的jar包【固然如今基本都是maven依賴,不多會注意到這一點,基本感受不到】 二、導入Context約束 三、告知spring在建立容器時要掃描的包,使用註解必須在其範圍內java

在這裏插入圖片描述
若是不知足上面條件則將出現下面異常,宜春清切的叫他 No bean異常
在這裏插入圖片描述

二、詳解@Component

Component翻譯過來就是組件的意思,讀做:抗破然着 (義正詞嚴)spring

2.一、@Component做用

曾經XML的配置:編程

<bean id="XXX" class="com.XX.XXX </bean>
複製代碼

@Component註解的做用就和在XML配置文件中編寫一個< bean >標籤實現的功能是同樣的,都是用於把當前類對象存入spring容器中。設計模式

2.二、@Component屬性

@Component註解屬性主要指的是value屬性。value屬性用於指定beanid。當咱們不寫時,它的默認值是當前類名首字母改小寫。固然通常狀況下是不寫的。好比: 併發

在這裏插入圖片描述

2.三、@Component小結

做用:用於把當前類對象存入spring容器中 屬性:value用於指定bean的id。當咱們不寫時,它的默認值是當前類名,且首字母改小寫。 注意:當只有一個屬性值的時候默承認以不寫 value=框架

三、 @Service("XXX")或者@Service(value = "XXX")狀況

固然不排除出現相似這種奇葩狀況,可能在一奇葩需求上就出現了這種狀況,顯然宜春是碰到過了,固然若是讀者朋友已經理解了我上面寫的東西,估計這個就很好理解了!maven

正確解讀:這是一個service業務層類,而且被註冊的bean的id爲XXX。若是你的spring容器中沒有一個組件id爲XXX的,無疑運行指定報No bean named 'YYY'異常,注意這裏的YYY不是XXX,長點心。學習

四、總結

至於@Controller、@Service、@Repository他們三個是spring框架爲咱們提供明確的三層使用的註解,使咱們的三層對象更加清晰!spa

實際上這四個註解實際上沒有任何本質區別,若是你喜歡,你徹底能夠把這四個註解當成一個註解用,固然這樣的話老闆可能就不喜歡你了。

若是本文對你有一點點幫助,那麼請點個讚唄,你的贊同是我最大的動力,謝謝~

最後,如有不足或者不正之處,歡迎指正批評,感激涕零!若是有疑問歡迎留言,絕對第一時間回覆!

歡迎各位關注個人公衆號,裏面有一些java學習資料和一大波java電子書籍,好比說周志明老師的深刻java虛擬機、java編程思想、核心技術卷、大話設計模式、java併發編程實戰.....都是java的聖經,不說了快上Tomcat車,咋們走!最主要的是一塊兒探討技術,嚮往技術,追求技術,說好了來了就是盆友喔...

在這裏插入圖片描述
相關文章
相關標籤/搜索