2018年Spring面试全方位攻略:69题+详解

需积分: 10 15 下载量 82 浏览量 更新于2023-05-23 收藏 548KB DOCX 举报
Spring是一个广泛应用于Java企业级应用开发的开源框架,它的设计理念是通过控制反转(Inversion of Control, IoC)来实现松散耦合,使得对象依赖于外部提供而非自行创建,从而促进良好的编程习惯。以下是Spring框架的一些关键知识点: 1. **Spring概述**: - Spring是一个Java开发框架,适用于各种规模的应用,特别适合构建企业级应用,同时也支持Web应用开发。 - 主要优点包括轻量级、控制反转、面向切面编程(AOP)、对象管理(容器功能)以及对MVC架构的支持。 - Spring框架的组件众多,包括Core、Bean、Context、表达式语言、JDBC、ORM等模块,以及专门用于Web开发的Servlet、Struts和Portlet模块。 2. **依赖注入**: - 在Spring中,依赖注入是通过`@Autowired`注解实现的,它简化了对象之间的依赖关系管理,使代码更加清晰易维护。 3. **Spring Beans**: - Spring的核心是BeanFactory,它负责创建和管理应用中的对象实例,这些实例通常被称为Spring Beans。每个Bean都有其特定的属性(props)和行为(methods),并通过配置文件或者注解定义。 4. **Bean生命周期**: - Spring Beans的生命周期包括初始化(Instantiation)、装配(Contribution)、验证(Validation)、初始化(Post-Processing)、创建(Creation)、配置(Configuration)、激活(Activation)、清理(Termination)等阶段。 5. **Spring注解**: - 注解如`@Component`、`@Repository`、`@Service`和`@Controller`在Spring MVC中用于标记不同角色的类,简化了组件的识别和管理。 6. **数据访问**: - Spring提供了数据访问抽象层,如JdbcTemplate(用于JDBC操作)、HibernateTemplate(与Hibernate集成)、JPA支持等,帮助开发者与数据库进行交互。 7. **AOP(面向切面编程)**: - Spring AOP允许开发者编写通用的行为,如日志、事务管理、权限检查等,这些行为可以在不修改核心业务代码的情况下进行插拔。 8. **MVC(Model-View-Controller)**: - Spring MVC是基于Spring的轻量级Web框架,它将应用程序分为模型、视图和控制器三个部分,实现松耦合的开发模式。 9. **事务管理**: - Spring的Transaction模块提供了全面的事务管理支持,包括本地事务和分布式事务(JTA),简化了开发者对事务处理的管理。 10. **异常处理**: - Spring提供了一致的异常处理机制,允许将技术特定的异常转换为统一的unchecked异常,便于处理和记录。 11. **模块结构**: - Spring的模块划分有助于管理和组织代码,如Core负责基础功能,Web模块则专注于Web开发支持。 理解这些知识点对于准备Spring的面试至关重要,能够深入掌握Spring的各个方面,包括其设计原则、应用领域和核心功能,将有助于你在面试中展现你的专业知识。