Spring 中提供 @Component、@Repository、@Service 和 @Controller。
在 Spring 版本中,这 4个注释几乎是等效的,但是从注释类的命名上,很容易看出后3 个注释分别和持久层、业务层和控制层(Web 层)相对应。
虽然目前这3 个注释和 @Component 相比没有什么新意,但 Spring 将在以后的版本中为它们添加特殊的功能。
所以,如果 Web 应用程序采用了经典的三层分层结构的话,最好在持久层、业务层和控制层分别采用上述注解对分层中的类进行注释。
@Service 用于标注业务层组件,对应的是业务层Bean
@Controller 用于标注控制层组件(如struts中的action),对应表现层的Bean,也就是Action。
@Repository 用于标注数据访问组件,即DAO组件,对应数据访问层Bean
@Component 泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。不推荐使用。