很長時間沒做web項目都把以前學的那點架構知識忘光了,今天把以前做的一個項目翻出來看一下發現用·@component标記一個元件,而網上有的用@service标記元件,我暈就查了一下資料:
spring 2.5 中除了提供 @component 注釋外,還定義了幾個擁有特殊語義的注釋,它們分别是:@repository、@service 和 @controller。
在目前的 spring 版本中,這 3 個注釋和 @component 是等效的,但是從注釋類的命名上,很容易看出這 3 個注釋分别和持久層、業務層和控制層(web 層)相對應。
雖然目前這3 個注釋和 @component 相比沒有什麼新意,但 spring 将在以後的版本中為它們添加特殊的功能。
是以,如果 web 應用程式采用了經典的三層分層結構的話,最好在持久層、業務層和控制層分别采用上述注解對分層中的類進行注釋。
@service用于标注業務層元件
@controller用于标注控制層元件(如struts中的action)
@repository用于标注資料通路元件,即dao元件
@component泛指元件,當元件不好歸類的時候,我們可以使用這個注解進行标注