本资源主要关注Java领域的依赖注入(Dependency Injection, DI)及其在Spring Framework中的应用,以及MyBatis这一流行的持久层框架。以下是主要内容概要:
1. **依赖注入的方式**:
- 依赖注入通常通过三种方式实现:构造函数注入、setter注入和接口注入。在Spring框架中,主要使用前两者。
- 构造函数注入:在类的构造函数中直接注入依赖,确保对象初始化时已具备所需组件,不会覆盖setter属性。
- Setter注入:通过setter方法来注入依赖,允许后期修改,但可能导致对象实例的复用问题。
2. **Spring中的IoC容器**:
- Spring提供两种主要的IoC(Inversion of Control)容器:Spring容器(BeanFactory)和Spring Application Context。BeanFactory是最基础的,而ApplicationContext提供了更多的功能和扩展性。
3. **MyBatis相关知识**:
- MyBatis是一种轻量级的ORM框架,用于简化数据库操作。
- 优点:SQL可读性强,减少SQL性能开销;与数据库解耦,易于维护和测试。
- 缺点:配置较多,对新手可能有一定学习曲线;不适合处理复杂的事务管理。
- 使用场景:面向过程的开发,特别是处理大量SQL查询的场景。
4. **MyBatis特性与面试常见问题**:
- #{}和${}的区别:#{}是预编译表达式,提高SQL性能;${}是字符串替换,安全但可能影响性能。
- 关联查询:一对一和一对多关系的查询方式和实现。
- 分页与缓存:MyBatis的分页插件原理,一级和二级缓存的使用。
- 动态SQL:MyBatis如何支持动态生成SQL,如foreach标签的使用。
- 映射文件:除了基本的CRUD操作,还包括其他如存储过程调用的标签。
- ORM映射:半自动与全自动的区别,MyBatis如何处理对象和数据库之间的映射。
- Mapper接口的使用规范和编写方式。
此资源包含了Java面试中关于依赖注入和MyBatis的深入讨论,适合准备Java或MyBatis面试者复习和准备相关知识点。