Spring面试精华:BeanFactory与ApplicationContext对比与AOP深度解析

需积分: 0 0 下载量 94 浏览量 更新于2024-06-18 收藏 1.52MB PDF 举报
本文档详细探讨了Spring框架面试中经常被提及的关键知识点,涵盖了Spring的核心概念、设计模式、配置与管理、事务处理、依赖注入、AOP(面向切面编程)以及两者之间的区别。以下是主要内容的概述: 1. **BeanFactory和ApplicationContext**: - Spring提供了两种核心容器:BeanFactory是基础,ApplicationContext在其基础上扩展,增加了更多的功能如监听器支持。 - BeanFactory主要用于配置和获取Bean,而ApplicationContext在初始化时会预先实例化单例Bean,提供更便捷的生命周期管理。 2. **IoC (Inversion of Control) 和 AOP (Aspect Oriented Programming)**: - IoC是将对象的创建和管理责任从应用代码转移到容器,使得代码更加模块化。 - AOP提供了解决横切关注点(如日志、事务管理等)的机制,使代码结构更加清晰。 3. **AOP在Spring中的应用**: - 使用@Aspect、@Before、@After等注解来声明切面(Advice),定义切点(Pointcut)和通知(Advice类型包括前置通知、后置通知等)。 - 切面的执行顺序可以通过@Order注解控制。 4. **Bean的生命周期管理**: - 介绍了Bean的生命周期的七个关键阶段,包括实例化、初始化、配置、显示、自毁、销毁等。 - 不同作用域(如prototype、request、session、singleton)的管理策略。 5. **事务管理**: - Spring提供编程式和声明式的事务管理,涉及传播行为、隔离级别、超时、只读事务等概念。 - 如何配置事务的传播行为和隔离级别,以及异常处理策略。 6. **依赖注入**: - 区分@Autowired和@Resource注解,它们在依赖查找和管理上的异同。 - 如何处理自定义对象注入和循环依赖问题。 7. **代理机制**: - JDK动态代理和CGLIB动态代理的比较,以及Spring AOP和AspectJ AOP的区别。 - Spring IoC实现机制,包括基于反射和基于CGLIB的代理。 8. **Spring的配置与注解使用**: - 注解在配置Bean和实现AOP时的应用,如@Autowired、@Component、@Repository等。 - 如何选择性地实例化Bean和处理注解。 通过本文档的学习,面试者可以全面掌握Spring框架的基础知识和核心概念,有助于在实际面试中展现出扎实的技术功底。