Spring系列:番外篇-Spring註解@Component、@Repository、@Service、@Controller區別

作者:Damniel

郵箱:[email protected]

微博:

博客:https://blog.csdn.net/bulletoo_(轉載請說明出處)

-----------------------------------華麗的分割線----------------------------------------

一、常用註解介紹:

Spring 2.5 中除了提供 @Component 註釋外,還定義了幾個擁有特殊語義的註釋,它們分別是:@Repository、@Service 和 @Controller。

在目前的 Spring 版本中,這 3 個註釋和 @Component 是等效的,但是從註釋類的命名上,很容易看出這 3 個註釋分別和持久層、業務層和控制層(Web 層)相對應。
雖然目前這3 個註釋和 @Component 相比沒有什麼新意,但 Spring 將在以後的版本中爲它們添加特殊的功能。
所以,如果 Web 應用程序採用了經典的三層分層結構的話,最好在持久層、業務層和控制層分別採用上述註解對分層中的類進行註釋。

@Service用於標註業務層組件

@Controller用於標註控制層組件(如struts中的action)

@Repository用於標註數據訪問組件,即DAO組件

@Component泛指組件,當組件不好歸類的時候,我們可以使用這個註解進行標註。

@Bean明確地指示了一種方法,什麼方法呢——產生一個bean的方法,並且交給Spring容器管理;從這我們就明白了爲啥@Bean是放在方法的註釋上了,因爲它很明確地告訴被註釋的方法,你給我產生一個Bean,然後交給Spring容器,剩下的你就別管了所以@Bean就放在方法上,就是產生一個Bean

二、註解分爲兩類:

1、一類是使用Bean,即是把已經在xml文件中配置好的Bean拿來用,完成屬性、方法的組裝;比如@Autowired , @Resource,可以通過byTYPE(@Autowired)、byNAME(@Resource)的方式獲取Bean;

2、一類是註冊Bean,@Component , @Repository , @ Controller , @Service , @Configration這些註解都是把你要實例化的對象轉化成一個Bean,放在IoC容器中,等你要用的時候,它會和上面的@Autowired , @Resource配合到一起,把對象、屬性、方法完美組裝。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章