四种注解底层实现有什么区别呢?

来源:5-3 基于注解初始化IoC容器

王小east

2022-12-09 23:35:00

四种注解底层实现有什么区别呢?

如果在service类上使用@Repository,或者在dao类上使用@Controller,会怎样呢?

写回答

1回答

好帮手慕小蓝

2022-12-10

同学你好~

1.除@Component外的三个注解,都是派生自@Component的,所以都具有实例化对象的功能。

2.@Controller:Spring会遍历扫描出来的所有bean,过滤出那些添加了注解@Controller的bean,将Controller中所有添加了注解@RequestMapping的方法解析出来封装成RequestMappingInfo存储到RequestMappingHandlerMapping中的mappingRegistry。后续请求到达时,会从mappingRegistry中查找能够处理该请求的方法。

3.@Repository:Spring会将加入过@Repository的类,注入时使用代理类的方式,而不是原生类。如果使用@Component就会使用原生类。

4.@Service:官网文档中有明确的说明,其与@Component没有本质区别。只不过在分层开发时,为了更加明确,所以通常使用@Service。

祝学习愉快~

0

0 学习 · 9886 问题

查看课程