1.@Component
@Component在类级别使用,使类成为一个组件。这些类可通过类路径扫描进行自动检测。在java配置中,@ComponentScan用于自动检测组件,在spring应用程序上下文XML中,component-scan标记用于通过类路径进行自动检测。@Component具有一个值属性,它是一个组件名称,它也将被视为spring bean名称。
2.@Service
@Service用于服务类注解。服务类可以充当j2EE模式的业务服务外观。服务类使用DAO,实体类等实现业务逻辑。@Service通过类路径扫描自动检测。对类进行注解@Service给出了逻辑意义,即这些类是服务。如果我们用@Component在服务类而不是@Service不会有任何问题,但是为了更好的可读性,则应该使用@Service注解服务类。@Service可理解为@Component的一个特例。
3.@Repository
@Repository用于持久层注解,应使用@Repository注解对这些类型的类进行注解,以通过类路径扫描进行自动检测。应使用@Repository注解对DAO类进行注解以进行自动检测。@Repository可理解为@Component的一个特例。
4.@Controller
@Controller在spring MVC的类级别使用。它表示该类是Web控制器。@Controller通过类路径扫描自动检测这些带注解的类。@Controller注解通常与@RequestMappingspring MVC中的注解结合使用。