网站首页 > 技术文章 正文
写在前边的话:
入职一个月后,经理吧bug单转给我,让我处理一下子。分析之后,觉得思路比较清楚,调用dao层的方法完成业务逻辑,随即启动项目,进行调试。结果启动项目报错,说找不到dao层的类。查看dao层,发现没有注解,随手添加上去一个mapper注解。还是失败。上网查资料觉得没有问题,随即问大哥。尴尬的事情来了,mapper是Mybatis中的注解,项目是MongoDB,用component,或者直接在循环之外用new就行了。
@Mapper 是 Mybatis 的注解,和 Spring 没有关系,@Repository 和@component 是 Spring 的注解,用于声明一个 Bean。@Repository是@Component注解衍生注解(功能一样)。
@Mapper
@Mapper 是 Mybatis 的注解,和 Spring 没有关系,@Repository 和@component 是 Spring 的注解,用于声明一个 Bean。
在 Spring 程序中,Mybatis 需要找到对应的 mapper,在编译的时候动态生成代理类,实现数据库查询功能,所以我们需要在接口上添加 @Mapper 注解。
@Repository
用于标注数据访问组件,即DAO组件,再稍微大点的项目里,使用xml的bean定义来配置会大大增加代码体积且不易维护,所以引入了自动扫描的机制,它的作用和在xml文件中使用bean节点配置组件时一样的。用于注解dao层,再impl类上注解。
@Repository 用于声明 dao 层的 bean,如果我们要真正地使用 @Repository 来进行开发,那是基于代码的开发,简单来说就是手写 JDBC。
@component
web开发,提供3个@Component注解衍生注解(功能一样)取代
@Repository(“名称”):dao层
@Service(“名称”):service层
@Controller(“名称”):web层
@Autowired:自动根据类型注入
@Qualifier(“名称”):指定自动注入的id名称
@Resource(“名称”)
@ PostConstruct 自定义初始化
@ PreDestroy 自定义销毁
我们在初次写spring的demo程序的时候,一定会觉得很繁琐,我要用一个类,直接new不就行了么,搞这么麻烦?
但是当我们用的稍微多了些的时候,就会发现,当我们需要的对象很多的时候,管理这些对象很复杂,很麻烦!!
猜你喜欢
- 2025-03-13 浅谈命令查询职责分离(CQRS)模式
- 2025-03-13 详细介绍一下Spring Boot3中如何整合JPA技术?
- 2025-03-13 SpringBoot——100种常用注解(分类版)
- 2025-03-13 京东大佬问我,每天新增100w订单数据的分库分表方案
- 2025-03-13 SpringBoot整合Spring Data JPA
- 2025-03-13 (新手勿进,全是代码)@ComponentScan、@ComponentScans详解
- 2025-03-13 清晰架构:融合 DDD、洋葱架构、整洁架构、CQRS (译)
- 2025-03-13 [Java 速成] @Service,@Repository 和 @Component 的区别 (day 8)
- 2025-03-13 一篇深入理解分层架构的文章
- 2025-03-13 Spring Data JPA——多表设计、一对多、多对多、多表查询
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)