关于一些注解的区分

1、@Mapper、@Repository、@MapperScan

1@Mapper@MapperScan 是 mybatis-plus 的注解, @Repository 是 Spring 的注解。
2@Repository 用来注册一个持久层的 Bean ,关于数据库的操作需要自己手写。
3@Mapper :Mybatis 需要找到对应的 mapper,在编译的时候动态生成代理类,实现数据库查询功能,所以我们需要在接口上添加 @Mapper 注解。
4@MapperScan 可以和 @Mapper替换。前者直接写在启动类上,标注需要扫描的包。

2、@Param、@RequestParam、@PathVariable

1@Param 是 MyBatis 的注解,用来给传递的参数命名,在mapper 里面可以根据名字来取到值。
2@RequestParam@PathVariable 是 springMVC用的 注解是用于从request中接收请求的,两个都可以接收参数,关键点不同的是@RequestParam 是从request里面拿取值,而 @PathVariable 是从一个URI模板里面来填充

3、@Bean、@Component、@Configuration

1@Bean@Component 都能实现在 spring 容器内注入 对象。
2@Bean 需要搭配 @Conguration 使用,可以注入第三方依赖的对象,@Conponent只能注入自己的对象。
3@Component 作用相当于 XML 文件配置
4、Spring帮助我们管理Bean分为两个部分,一个是注册Bean,一个装配Bean。完成这两个动作有三种方式,一种是使用自动配置的方式、一种是使用JavaConfig的方式,一种就是使用XML配置的方式。
5@Bean 使用在方法上,@Component 使用在类上。

4、@Component、@Service 、@Repository 、@Controller

1@Component, @Service, @Controller, @Repository是spring注解,注解后可以被spring框架所扫描并注入到spring容器来进行管理
2@Component是通用注解,其他三个注解是这个注解的拓展,并且具有了特定的功能
3@Repository注解在持久层中,具有将数据库操作抛出的原生异常翻译转化为spring的持久层异常的功能。
4@Controller层是spring-mvc的注解,具有将请求进行转发,重定向的功能。
5@Service层是业务逻辑层注解,这个注解只是标注该类处于业务逻辑层。
6、用这些注解对应用进行分层之后,就能将请求处理,义务逻辑处理,数据库操作处理分离出来,为代码解耦,也方便了以后项目的维护和开发。
posted @   心是冰冰的  阅读(73)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示