在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。
沒有留言:
張貼留言