@Resource、@Autowired等幾個注解的區別


1、@Resource注解和@Autowired的區別

@Autowired注解:是按類型裝配依賴對象,默認情況下它要求依賴對象必須存在,如果允許null值,可以設置它required屬性為false。

@Resource注解:和@Autowired一樣,也可以標注在字段或屬性的setter方法上,但它默認按名稱裝配。名稱可以通過@Resource的name屬性指定,如果沒有指定name屬性,當注解標注在字段上,即默認取字段的名稱作為bean名稱尋找依賴對象,當注解標注在屬性的setter方法上,即默認取屬性名作為bean名稱尋找依賴對象。

簡單點說,就是:@Resources按名字,是JDK的;@Autowired按類型,是Spring的。

2、@Component, @Repository, @Service,@Component, @Repository, @Service的區別

注解 含義
@Component 最普通的組件,可以被注入到spring容器進行管理
@Repository 作用於持久層
@Service 作用於業務邏輯層
@Controller 作用於表現層(spring-mvc的注解)

@Component@Service@Controller@Repository是spring注解,注解后可以被spring框架所掃描並注入到spring容器來進行管理
@Component是通用注解,其他三個注解是這個注解的拓展,並且具有了特定的功能
@Repository注解在持久層中,具有將數據庫操作拋出的原生異常翻譯轉化為spring的持久層異常的功能。
@Controller層是spring-mvc的注解,具有將請求進行轉發,重定向的功能。
@Service層是業務邏輯層注解,這個注解只是標注該類處於業務邏輯層。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM