@Repository、@Service 和 @Controller和@Component
前3 个 注释和 @Component 是 等效的,但是从注释类的命名上,很容易看出前 3 个 注释分别和持久层、业务层和控制层(Web 层) 相对应。虽然目前这 3 个 注释和 @Component 相 比没有什么新意,但 Spring 将在以后的版本中为它们添加特殊的功能。所以,如果 Web 应 用程序采用了经典的三层分层结构的话,最好在持久层、业务层和控制层分别采用 @Repository、@Service 和 @Controller 对 分层中的类进行注释,而用 @Component 对 那些比较中立的类进行注释。
也就是:
@Repository用于标注数据访问组件,即DAO组件
@Service用于标注业务层组件,即Service层(自动根据bean的类名实例化一个首写字母为小写的bean)
@Controller用于标注控制层组件
@Component泛指组件,当组件不好归类的时候可以使用这个注解进行标注