在Spring框架中最常见的几个注解
@Controller, @Service, @Component, @Repository
其中@Component是一种通用名称,泛指任意可以通过Spring来管理的组件,@Controller, @Service, @Repository则是一种特定的组件,通常用来表示某种特定场合下的组件,比如@Repository用来表示仓库(数据层,DAO),并且Spring 框架会根据这种应用场景做些定制,比如@Repository同时具备了自动化的异常转换。类似的, @Service则用来表示服务层相关的类, @Controller则用来表示展示层(presentation)的类。
那Service是什么呢?
Service 表示了在软件分层设计中的Service层,用来连结数据层(DAO)和展示层(Presentation)。
为什么要在DAO层上加一层Service呢?
在某些简单的应用中,DAO层的功能和Service的功能很接近,甚至初学者会觉得Service层做的事情和DAO层都一样,那为啥还要将Service层单独拿出来做一遍呢?而且,很多场景下,Service层和DAO层同时存在,往往会增加代码复杂度,编码工作量,写的不好甚至会造成混淆。