@Component分析
该注解是万能的注解,通常加在配置类上。
@Controller分析
如果不使用springMVC时,三者使用其实是没有什么差别的,但如果使用了springMVC,@Controller就被赋予了特殊的含义。
spring会遍历上面扫描出来的所有bean,过滤出那些添加了注解@Controller的bean,将Controller中所有添加了注解@RequestMapping的方法解析出来封装成RequestMappingInfo存储到RequestMappingHandlerMapping中的mappingRegistry。后续请求到达时,会从mappingRegistry中查找能够处理该请求的方法。
@Service分析
用于标注服务层,主要用来进行业务的逻辑处理,目前@Service本人没有找到其特殊之处,可能spring官方后续会添加特殊的操作吧。
@repository
用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件.
共同点:被@controller 、@service、@repository 、@component 注解的类,都会把这些类纳入进spring容器中进行管理