@Component, @Repository, @Service,@Controller

@Component 最普通的组件,可以被注入到spring容器进行管理
@Repository 作用于持久层
@Service 作用于业务逻辑层
@Controller 作用于表现层(spring-mvc的注解)

@Controller注解类进行前端请求的处理,转发,重定向。包括调用Service层的方法 

 @Service注解类处理业务逻辑  

@Repository注解类作为DAO对象(数据访问对象,Data Access Objects),这些类可以直接对数据库进行操作  有这些分层操作的话,代码之间就实现了松耦合,代码之间的调用也清晰明朗,便于项目的管理

@Component,@Service,@Controller@Component是一个通用的Spring容器管理的单例bean组件。而@Repository@Service@Controller就是针对不同的使用场景所采取的特定功能化的注解组件。

因此,当你的一个类被@Component所注解,那么就意味着同样可以用@Repository@Service@Controller来替代它,同时这些注解会具备有更多的功能,而且功能各异。

最后,如果你不知道要在项目的业务层采用@Service还是@Component注解。那么,@Service是一个更好的选择。

总结

@Component@Service@Controller@Repository是spring注解,注解后可以被spring框架所扫描并注入到spring容器来进行管理  @Component是通用注解,其他三个注解是这个注解的拓展,并且具有了特定的功能  @Repository注解在持久层中,具有将数据库操作抛出的原生异常翻译转化为spring的持久层异常的功能。  @Controller层是spring-mvc的注解,具有将请求进行转发,重定向的功能。  @Service层是业务逻辑层注解,这个注解只是标注该类处于业务逻辑层。  用这些注解对应用进行分层之后,就能将请求处理,义务逻辑处理,数据库操作处理分离出来,为代码解耦,也方便了以后项目的维护和开发。

你可能感兴趣的:(idea,spring,cloud)