"Java面试题-架构+框架相关.pdf"
这篇文档主要涵盖了Java面试中关于架构和框架的一些常见问题和知识点,特别强调了MVC设计模式以及Spring AOP的细节。MVC(Model-View-Controller)是软件设计中的一种经典架构模式,广泛应用于Web应用开发,用于分离业务逻辑、数据模型和用户界面。
1. **MVC模式**:
- Model:负责处理应用程序的数据逻辑,与数据源交互,通常包含业务对象和数据访问对象。
- View:负责显示数据,它直接与用户交互,根据Model中的数据进行渲染。
- Controller:接收用户的输入并调用Model和View去执行相应的操作,它是Model和View之间的桥梁。
2. **Spring框架**:
- Spring是一个全面的企业级应用开发框架,提供依赖注入(DI)、面向切面编程(AOP)、事务管理等核心功能。
- Spring AOP(Aspect Oriented Programming)是Spring框架的一部分,用于实现横切关注点,如日志、缓存、事务管理等,它通过动态代理实现了AOP。
3. **Spring AOP的实现方式**:
- JDK动态代理:当目标类实现了一个或多个接口时,Spring AOP会使用JDK的Proxy类创建一个代理对象来实现AOP功能。
- CGLIB:如果目标类没有实现接口,Spring AOP会使用CGLIB库动态生成一个子类来实现AOP代理。CGLIB是一个代码生成库,用于在运行时修改字节码。
4. **AOP相关概念**:
- InvocationHandler:JDK动态代理中,定义了调用处理程序接口,处理代理对象的方法调用。
- Proxy:JDK提供的一个接口,用于创建动态代理类和代理对象。
- Aspect:切面,是AOP中的核心概念,包含了通知(Advice)和切入点(Pointcut)。
- Advice:在特定的连接点(Join Point)执行的代码,例如方法调用前后。
- Join Point:程序执行过程中的某个特定点,如方法调用、异常处理等。
- Pointcut:匹配一组Join Points的规则,定义了何时应用Advice。
5. **Spring Bean生命周期**:
- Spring管理的Bean会经历初始化、活跃使用和销毁三个阶段,包括初始化回调(InitializingBean接口或init-method属性)、自定义初始化(BeanPostProcessor接口)和销毁回调(DisposableBean接口或destroy-method属性)。
6. **Spring BeanFactory和ApplicationContext**:
- BeanFactory是Spring的基本容器,它可以管理Bean的生命周期,但功能相对较少。
- ApplicationContext是BeanFactory的扩展,提供了更多企业级服务,如国际化、事件传播、资源加载等。
7. **Bean的创建和依赖注入**:
- Spring可以自动创建Bean实例,并根据配置进行依赖注入,支持构造器注入、setter注入等多种方式。
- Bean可以通过@Autowired注解进行自动装配,也可以通过@Qualifier注解指定特定的Bean。
8. **Spring的其他特性**:
- Spring支持多种数据访问集成,如JDBC、JPA、Hibernate等。
- Spring MVC是Spring框架的一个模块,用于构建Web应用,它实现了MVC模式。
这份文档显然深入讨论了Java面试中常遇到的架构和框架相关问题,对于准备面试或提升Java开发者的技术理解非常有帮助。