網頁

2019/4/29

Spring @Service 與 @Component 的差別?

在Spring應用程式中常可以看到某些類別上掛有@Service@Component,兩者差別如下。

@Service@Component同樣都是當被Spring的@ComponentScan掃描時,會註冊成為Spring IoC容器管理的bean。

@Service其實可以看做是一個特別的@Component,除了名稱上不同外,其餘的作用與@Component完全一樣,並沒有什麼其他不同的行為。

那為什麼不直接用@Component就好呢?,因為在設計網路應用程式時,通常在Controller與Model間會插一層Service(有時又稱Facade),Service用來組織多個Model的調用。而掛上@Service的類可以讓人快速了解此類是Service。如果一個Service類別名稱不叫XXXService,而且掛的是@Component,那可能會讓人誤以為這是個其他用途的bean。

沒有留言:

張貼留言