java中這四個(gè)注解有什么區(qū)別???項(xiàng)目中怎么都是混用?
問(wèn)題描述
@Component:@Controller@Repository@Service
問(wèn)題解答
回答1:都是用來(lái)定義Bean的
@Component是最通用的
@Service,@Repository也是@Component,只不過(guò)賦予了不同的語(yǔ)義,便于代碼閱讀,其實(shí)這三個(gè)隨便用也無(wú)所謂,Spring不會(huì)報(bào)錯(cuò)。
@Controller特殊,專門被Spring MVC處理,不能替換為另外三個(gè)。
回答2:@Service用于標(biāo)注業(yè)務(wù)層組件
@Controller用于標(biāo)注控制層組件(spring中的controller)
@Repository用于標(biāo)注數(shù)據(jù)訪問(wèn)組件,即DAO組件
@Component泛指組件,當(dāng)組件不好歸類的時(shí)候,我們可以使用這個(gè)注解進(jìn)行標(biāo)注
回答3:@Controller 就是用在controller, @Service 用在service, @Repository 用在dao, @Component用在其他不明確的地方。
回答4:只是語(yǔ)意上不同,作用都是一樣
回答5:效果都是一樣的**
回答6:這四個(gè)注解對(duì)機(jī)器來(lái)說(shuō)運(yùn)行效果一樣。只有語(yǔ)義上的區(qū)別,告訴看代碼的人這個(gè)類是哪個(gè)層面的組件
相關(guān)文章:
1. java - public <T> T findOne(T record) 這是什么意思2. css - 關(guān)于ul的布局3. javascript - 前端開發(fā) 本地靜態(tài)文件頻繁修改,預(yù)覽時(shí)的緩存怎么解決?4. android - 優(yōu)酷的安卓及蘋果app還在使用flash技術(shù)嗎?5. docker不顯示端口映射呢?6. mysql數(shù)據(jù)庫(kù)每次查詢是一條線程嗎?7. python - linux怎么在每天的凌晨2點(diǎn)執(zhí)行一次這個(gè)log.py文件8. javascript - 我的站點(diǎn)貌似被別人克隆了, google 搜索特定文章,除了域名不一樣,其他的都一樣,如何解決?9. 如何分別在Windows下用Winform項(xiàng)模板+C#,在MacOSX下用Cocos Application項(xiàng)目模板+Objective-C實(shí)現(xiàn)一個(gè)制作游戲的空的黑窗口?10. 小程序怎么加外鏈,語(yǔ)句怎么寫!求救新手,開文檔沒(méi)發(fā)現(xiàn)
