2019 Java面试高频:Spring与SpringBoot框架核心知识点梳理

需积分: 10 0 下载量 83 浏览量 更新于2024-09-03 收藏 19KB DOCX 举报
Java面试框架高频问题2019是一份专门为准备Java面试者量身打造的资料,涵盖了Spring、SpringMVC、SpringBoot和SpringCloud等多个高级Java框架的关键知识点。这份资料旨在帮助面试者突击学习和弥补在面试过程中可能遇到的技能短板。 首先,关于Spring面试部分: 1. **Spring IOC (Inversion of Control) 和 DI (Dependency Injection)**: IOC是控制反转,它通过将对象的创建和管理责任移交给容器,提高代码的灵活性和可测试性。DI则是将依赖关系从代码中解耦,使得代码更容易理解和维护。两者密切相关,但IOC更侧重于控制流程,而DI关注对象的依赖关系。 2. **BeanFactory接口和ApplicationContext接口**: BeanFactory是最早的Spring容器接口,提供了基本的bean管理功能;ApplicationContext增加了更多的功能,如事件发布和管理,更适合大型应用。 3. **Spring bean实例化方式**:包括构造函数注入、setter注入和无参构造器注入,以及使用XML或注解配置自动装配。 4. **Spring的生命周期**:包括bean的实例化、初始化、配置、请求处理、销毁等阶段,理解每个阶段的作用有助于应对相关问题。 5. **Bean的生命周期和作用域**:Spring有多种作用域,如singleton(单例)、prototype(原型)、request(请求)等,理解它们如何影响bean的生命周期和共享状态。 6. **Bean注入属性方式**:包括构造函数注入、setter注入、属性文件注入等。 7. **AOP (Aspect Oriented Programming)**: 面向切面编程,用于解决横切关注点,如日志、事务管理等,提升代码的复用性和模块间的解耦。 8. **Spring核心类及其作用**:如ApplicationContext、BeanFactory、BeanDefinition、TransactionManager等,它们分别负责应用上下文管理、bean定义、事务处理等核心功能。 9. **配置数据库驱动**:通过Maven或Gradle引入相应JDBC驱动,然后在Spring配置文件中配置数据源和相关连接参数。 10. **Spring配置文件命名**:虽然默认使用applicationContext.xml,但可以通过Spring的Namespace和<context:property-placeholder>标签调整文件名。 11. **Spring和Hibernate的集成**:定义hibernate-mapping.xml文件,并在Spring中配置SessionFactory和HibernateTemplate。 12. **Spring并发问题处理**:利用线程池、同步机制、AOP的@Async等技术来管理并发和避免资源争抢。 13. **事物传播行为**:事务的传播行为用于控制在一个方法调用时,事务的处理策略,例如PROPAGATION_REQUIRED表示必须有事务,如果当前没有,则新建一个。 14. **Spring事务管理**:包括事务的定义、传播行为设置、提交/回滚规则等,理解事务的隔离级别和持久性。 15. **Spring AOP术语**:如切点(Pointcut)、通知(Advice)、连接点(Joinpoint)、切入点表达式等,这些概念是理解AOP核心原理的关键。 SpringBoot面试部分: 1. **SpringBoot简介**:是一个快速开发Spring应用的框架,简化了配置和依赖管理,减少了繁琐的配置文件。 2. **SpringBoot优点**:一键启动、嵌入式服务器、自动配置、热部署等,提高了开发效率。 3. **配置文件和区别**:核心配置文件有application.properties或application.yml,区别在于后者支持YAML语法,更易读。 4. **配置文件格式和区别**:properties和yml格式,yml支持更丰富的数据结构和可读性。 5. **核心注解**:SpringBoot的核心注解包括@Component、@RestController等,简化了组件管理和HTTP请求处理。 6. **开启特性方式**:通过@Enable或@Bean注解,以及命令行参数或配置文件。 7. **容器依赖**:SpringBoot使用Spring Boot Actuator自动配置容器,无需额外的Spring容器。 8. **运行方式**:通过main方法启动、命令行参数、批处理脚本等。 9. **自动配置原理**:基于条件匹配和组件扫描,自动识别并启用需要的组件和服务。 10. **SpringBoot 2.x新特性和区别**:可能涉及微服务、云原生、模块化升级等内容,与1.x版本相比有显著增强。 11. **SpringBoot应用开发实践**:如分页、排序、安全性、集成、监控、API文档等。 12. **SpringBoot与其他框架的集成**:如与MQ、监控工具、API文档生成工具等。 13. **SpringBoot异常处理**:使用@ControllerAdvice、@ExceptionHandler等注解处理异常。 14. **RequestMapping和GetMapping**:前者更全面,GetMapping是其子接口,主要用于处理HTTP GET请求。 15. **SpringBoot兼容性**:支持老Spring项目迁移,通过Spring Boot的 Starter和AutoConfiguration机制进行整合。 16. **安全防护措施**:如使用Spring Security进行身份验证和授权。 以上知识点涵盖了Spring和SpringBoot的核心概念和技术细节,对于准备Java面试的应聘者来说,深入理解和掌握这些内容将大大提升面试表现。